Function at 0x46228b
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
mov eax, dword [0x4b900c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x78], eax
mov eax, dword [esi]
push edi
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xa4], eax
cmp dword [esi + 0x24], ecx
jne 0x463231
cmp byte [eax + 0x49], cl
jne 0x463231
mov ecx, esi
call fcn.00450a64
mov ebx, eax
mov dword [ebp - 0x34], ebx
test ebx, ebx
je 0x463231
mov edx, dword [ebx + 0x48]
mov ecx, dword [esi]
call fcn.0045aa08
mov dword [ebp - 0x40], eax
mov edx, ebx
lea eax, [ebp - 0x84]
mov ecx, esi
push eax
push dword [ebp - 0x48]
push 0x6f
call fcn.00461bff
add esp, 0xc
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0xc]
mov edx, ebx
mov ecx, esi
mov dword [ebp - 0x90], eax
call fcn.0044de9d
test eax, eax
jne 0x463231
push dword [ebp - 0x84]
mov edx, ebx
mov ecx, esi
call fcn.00450aa1
pop ecx
test eax, eax
jne 0x463231
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xac], ecx
lea edx, [ecx + 1]
mov dword [esi + 0x28], edx
test byte [ebx + 0x24], 0x20
mov dword [ebp - 0xa0], edx
jne 0x4623c2
and dword [ebp - 0x3c], eax
jmp 0x4623cf
mov ecx, ebx
call fcn.0044c8a3
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 8]
xor edi, edi
mov dword [ebp - 0x80], edi
test eax, eax
je 0x4623f3
cmp dword [ebp - 0x3c], eax
cmove ecx, edx
inc edx
mov dword [esi + 0x28], edx
inc edi
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4623db
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x462412
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xa0], edx
mov dword [esi + 0x28], eax
mov edx, dword [ebp - 0x88]
push 0
mov dword [edx + 0x34], ecx
movsx eax, word [ebx + 0x2a]
mov ecx, dword [ebp - 0xa4]
add eax, edi
lea eax, [eax*4 + 2]
add eax, edi
push eax
call fcn.0041ea84
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x4c], ecx
test ecx, ecx
je 0x463231
movsx eax, word [ebx + 0x2a]
lea eax, [ecx + eax*4]
lea ecx, [eax + edi*4]
mov dword [ebp - 0xc4], eax
lea eax, [edi + 1]
mov dword [ebp - 0x64], ecx
push eax
xor eax, eax
inc eax
push eax
push ecx
call fcn.00479680
mov eax, dword [ebp - 0x64]
add esp, 0xc
xor ecx, ecx
mov byte [eax + edi + 1], 0
xor eax, eax
cmp ax, word [ebx + 0x2a]
jge 0x462493
mov esi, dword [ebp - 0x4c]
or dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebx + 0x2a]
cmp ecx, eax
jl 0x462480
mov esi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x48]
lea edi, [ebp - 0x24]
and dword [ebp - 0x54], 0
xor eax, eax
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x78]
xor cl, cl
mov edi, dword [ebp - 0x88]
mov dword [ebp - 0x1c], eax
mov eax, 0x200
mov word [ebp - 0xc], ax
xor al, al
cmp dword [edx], 0
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x98], eax
mov byte [ebp - 0x25], cl
jle 0x462637
push 0xfffffffffffffffc
pop ecx
lea eax, [edx + 4]
sub ecx, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xb0], ecx
mov edx, dword [eax]
lea ecx, [ebp - 0x24]
call fcn.00444851
test eax, eax
jne 0x463231
movsx eax, word [ebx + 0x2a]
xor edi, edi
test eax, eax
jle 0x46258a
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [eax + ecx + 8]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x70], eax
mov edx, ecx
mov ecx, dword [eax]
call fcn.00420d6e
test eax, eax
je 0x462543
mov eax, dword [ebp - 0x70]
inc edi
movsx ecx, word [ebx + 0x2a]
add eax, 0x10
cmp edi, ecx
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x30]
jl 0x46251f
jmp 0x46258a
movsx eax, word [ebx + 0x28]
cmp edi, eax
jne 0x46255b
xor eax, eax
inc eax
mov byte [ebp - 0x25], al
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
jmp 0x462581
cmp dword [ebp - 0x3c], 0
je 0x462581
mov ecx, dword [ebx + 4]
mov eax, edi
add eax, eax
xor edx, edx
inc edx
test byte [ecx + eax*8 + 0xf], dl
mov eax, dword [ebp - 0x98]
movzx eax, al
cmovne eax, edx
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x54]
mov dword [ecx + edi*4], eax
movsx eax, word [ebx + 0x2a]
cmp edi, eax
jl 0x4625c0
cmp dword [ebp - 0x3c], 0
jne 0x46264b
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 4]
call fcn.0044648f
test eax, eax
je 0x46264b
xor eax, eax
or edi, 0xffffffff
inc eax
mov byte [ebp - 0x25], al
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
test edi, edi
jns 0x4625cb
mov edx, str.Trace
jmp 0x4625d5
mov eax, dword [ebx + 4]
mov ecx, edi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x40]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, esi
push edx
push dword [ebx]
push 0x17
pop edx
call fcn.0044bd79
xor ecx, ecx
add esp, 0xc
inc ecx
cmp eax, ecx
je 0x463231
cmp eax, 2
jne 0x46260d
mov eax, dword [ebp - 0x4c]
or dword [eax + edi*4], 0xffffffff
mov edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x48]
inc edi
mov eax, dword [ebp - 0x44]
add eax, 0x18
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x44], eax
cmp edi, dword [ecx]
jl 0x4624e6
mov eax, dword [ebp - 0x98]
mov cl, byte [ebp - 0x25]
mov edi, dword [ebp - 0x88]
cmp dword [ebx + 0x38], 0
lea edx, [ecx + eax]
mov byte [ebp - 0x44], dl
je 0x46266f
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x462686
imul eax, dword [ebp - 0x54], 0x18
mov ecx, dword [ebp - 0x48]
push dword [eax + ecx + 8]
push str.LIKE_or_GLOB_pattern_too_complex
push esi
call fcn.00420c98
xor eax, eax
add esp, 0xc
inc eax
mov byte [esi + 0x11], al
jmp 0x463231
xorps xmm0, xmm0
movlpd qword [ebp - 0xb8], xmm0
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb8]
mov dword [edi + 0x40], eax
movzx eax, dl
mov edx, ebx
push eax
push dword [ebp - 0x4c]
mov dword [edi + 0x44], ecx
mov ecx, esi
mov dword [ebp - 0xb0], eax
call fcn.004544d0
pop ecx
pop ecx
mov ecx, dword [ebx + 8]
xor edi, edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x30], edi
test ecx, ecx
je 0x46273c
mov ebx, dword [ebp - 0x64]
cmp byte [ebp - 0x44], 0
jne 0x4627bb
cmp eax, 1
jg 0x4627bb
cmp dword [ecx + 0x24], 0
jne 0x4627bb
cmp ecx, dword [ebp - 0x3c]
je 0x4627bb
movzx eax, word [ecx + 0x32]
xor edx, edx
xor edi, edi
mov dword [ebp - 0x70], edx
test eax, eax
je 0x46271a
mov edx, dword [ecx + 4]
movzx eax, word [edx]
test ax, ax
js 0x462784
mov ebx, dword [ebp - 0x4c]
cwde
cmp dword [ebx + eax*4], 0
mov ebx, dword [ebp - 0x64]
jge 0x462784
movzx eax, word [ecx + 0x32]
inc edi
add edx, 2
cmp edi, eax
jl 0x4626f2
mov edx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x30]
mov byte [edi + ebx + 1], 0
mov eax, dword [ebp - 0xc4]
mov dword [eax + edi*4], edx
inc edi
mov ecx, dword [ecx + 0x14]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x30], edi
test ecx, ecx
jne 0x4626ba
mov ebx, dword [ebp - 0x34]
cmp dword [ebp - 8], 0
je 0x462756
mov eax, dword [ebp - 0x80]
inc eax
push eax
xor eax, eax
inc eax
push eax
push dword [ebp - 0x64]
call fcn.00479680
add esp, 0xc
mov ecx, esi
call fcn.0045cd1f
mov edi, eax
test edi, edi
je 0x463231
cmp byte [esi + 0x12], 0
jne 0x462774
mov ecx, edi
call fcn.00439963
cmp dword [ebp - 0x5c], 0
jne 0x4627cc
cmp dword [ebp - 0x50], 0
jne 0x4627cc
xor edx, edx
jmp 0x4627d1
inc dword [esi + 0x2c]
movzx eax, word [ecx + 0x34]
mov edx, dword [esi + 0x2c]
add eax, edx
cmp dword [ebp + 0x10], 5
mov dword [esi + 0x2c], eax
je 0x4627a5
cmp dword [ebp + 0x10], 0xb
jne 0x4627ab
cmp byte [ecx + 0x36], 5
jne 0x4627ab
xor eax, eax
inc eax
mov dword [ebp - 8], eax
mov edi, dword [ebp - 0x30]
test edx, edx
jne 0x462722
jmp 0x46271d
inc dword [esi + 0x2c]
movzx eax, word [ecx + 0x34]
mov edx, dword [esi + 0x2c]
add eax, edx
mov dword [esi + 0x2c], eax
jmp 0x4627ae
xor eax, eax
lea edx, [eax + 1]
push dword [ebp - 0x40]
mov ecx, esi
call fcn.0044fe81
cmp dword [ebx + 0x38], 0
pop ecx
jne 0x46284b
inc dword [esi + 0x2c]
cmp byte [ebp - 0x98], 0
mov eax, dword [esi + 0x2c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0xbc], eax
lea ecx, [eax + 1]
mov dword [ebp - 0x6c], ecx
mov dword [esi + 0x2c], ecx
mov dword [ebp - 0x38], ecx
jne 0x462811
test edx, edx
jne 0x462811
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x462826
lea eax, [ecx + 1]
mov dword [ebp - 0xd0], eax
movsx eax, word [ebx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x50]
cmp byte [ebp - 0x44], 0
jne 0x462834
test edx, edx
jne 0x462834
test eax, eax
je 0x46283d
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x6c], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [ebp - 0x68], eax
movsx eax, word [ebx + 0x2a]
add dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x462888
push dword [ebx]
lea edx, [ebp - 0xdc]
mov ecx, esi
call fcn.0044bdf5
mov eax, dword [ebp - 0x90]
add esp, 4
test eax, eax
je 0x462888
push dword [ebp - 0x2c]
mov edx, ebx
push 0
push 0
push dword [ebp - 0x94]
call fcn.00450b02
add esp, 0x10
mov edx, dword [ebp - 0x94]
lea ecx, [ebp - 0x24]
call fcn.00444851
test eax, eax
jne 0x463231
cmp dword [ebx + 0x38], eax
je 0x4628cb
push dword [ebp + 0x10]
mov edx, dword [ebp - 0x88]
mov ecx, esi
push dword [ebp - 0x94]
push dword [ebp - 0x4c]
push dword [ebp - 0x60]
push dword [ebp - 0x48]
push ebx
call fcn.00463281
add esp, 0x18
jmp 0x463231
mov ecx, edi
call fcn.0043696d
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xa4]
test byte [eax + 0x1c], 0x80
je 0x462911
cmp dword [esi + 0x7c], 0
jne 0x462911
cmp byte [esi + 0x12], 0
jne 0x462911
cmp dword [ebp - 0x78], 0
jne 0x462911
inc dword [esi + 0x2c]
mov ecx, edi
mov eax, dword [esi + 0x2c]
push eax
push 0
push 0x43
pop edx
mov dword [ebp - 0xc8], eax
call fcn.00436721
pop ecx
pop ecx
test byte [ebx + 0x24], 0x20
jne 0x462931
push dword [ebp - 0x38]
mov ecx, edi
push dword [ebp - 0xbc]
push 0
push 0x46
pop edx
call fcn.0043669d
add esp, 0xc
jmp 0x4629a7
mov eax, dword [ebp - 0x3c]
mov edx, dword [esi + 0x2c]
inc edx
mov dword [ebp - 0xa8], edx
movzx eax, word [eax + 0x32]
movsx ecx, ax
mov dword [ebp - 0x74], eax
lea eax, [ecx + 1]
add dword [esi + 0x2c], eax
cmp dword [ebp - 0x78], 0
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x58], eax
jne 0x462a55
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x8c], eax
inc eax
mov dword [esi + 0x28], eax
lea eax, [ecx - 1]
add eax, edx
mov ecx, edi
push eax
push edx
push 0
push 0x46
pop edx
call fcn.0043669d
mov ecx, dword [ebp - 0x74]
add esp, 0xc
movsx eax, cx
mov ecx, edi
push eax
push dword [ebp - 0x8c]
push 0x6e
pop edx
call fcn.00436721
mov edx, dword [ebp - 0x3c]
pop ecx
pop ecx
mov ecx, esi
mov dword [ebp - 0x7c], eax
call fcn.00436efe
cmp dword [ebp - 0x78], 0
jne 0x462a55
cmp byte [esi + 0x12], 0
mov eax, 0x1004
jne 0x4629d8
cmp dword [ebp - 0x5c], 0
jne 0x4629d8
cmp dword [ebp - 0x50], 0
jne 0x4629d8
cmp byte [ebp - 0x44], 0
jne 0x4629d8
cmp dword [ebp - 8], 0
lea ecx, [eax + 8]
cmove eax, ecx
push dword [ebp - 0xa0]
mov edx, dword [ebp - 0x88]
mov ecx, esi
push eax
push 0
push 0
push dword [ebp - 0x94]
call fcn.0046cbc7
add esp, 0x14
mov dword [ebp - 0x70], eax
test eax, eax
je 0x463231
lea edx, [ebp - 0xb8]
mov ecx, eax
call fcn.00468c5e
mov edx, eax
xor eax, eax
inc eax
mov dword [ebp - 0x40], edx
cmp edx, eax
je 0x462a73
mov ecx, esi
call fcn.0044feae
cmp edx, 2
jne 0x462a73
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x2c]
test eax, eax
js 0x462a76
cmp eax, ecx
je 0x462a76
sub eax, dword [ebp - 0xac]
mov ebx, dword [ebp - 0x64]
push 0
cmp byte [eax + ebx], 0
mov ebx, dword [ebp - 0x34]
pop eax
cmovne edx, eax
mov dword [ebp - 0x40], edx
jmp 0x462a76
and dword [ebp - 0x70], 0
xor eax, eax
push 0x10
push dword [ebp - 0x54]
inc eax
push dword [ebp - 0x94]
mov dword [ebp - 0x40], eax
push esi
call fcn.00448db9
add esp, 0x10
mov ecx, dword [ebp - 0x2c]
test byte [ebx + 0x24], 0x20
jne 0x462ab3
push dword [ebp - 0x38]
push ecx
push 0x7d
pop edx
mov ecx, edi
call fcn.00436721
mov edx, dword [ebp - 0x40]
pop ecx
pop ecx
test edx, edx
jne 0x462b85
push dword [ebp - 0x38]
mov edx, 0x91
mov ecx, edi
push dword [ebp - 0xbc]
call fcn.00436721
pop ecx
pop ecx
jmp 0x462b82
mov eax, dword [ebp - 0x74]
and dword [ebp - 0xcc], 0
cwde
test eax, eax
jle 0x462afd
mov esi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xa8]
mov edx, ebx
add eax, esi
push eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
mov ecx, edi
call fcn.0044781f
mov ecx, dword [ebp - 0x74]
add esp, 0xc
movsx eax, cx
inc esi
mov ecx, dword [ebp - 0x2c]
cmp esi, eax
jl 0x462ac8
mov esi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x462b2e
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x462b17
mov edx, eax
mov ecx, edi
call fcn.00436d93
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x74]
movsx eax, cx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x58], eax
jmp 0x462b85
mov edx, dword [ebp - 0x3c]
push eax
push ecx
mov ecx, dword [ebp - 0xa4]
call fcn.00454b3f
pop ecx
mov ecx, dword [ebp - 0x74]
push eax
push dword [ebp - 0x58]
movsx eax, cx
mov ecx, edi
push eax
push dword [ebp - 0xa8]
push 0x65
pop edx
call fcn.004367ed
mov ecx, dword [ebp - 0x74]
add esp, 0x14
movsx eax, cx
mov edx, 0x81
mov ecx, edi
push eax
push dword [ebp - 0xa8]
push dword [ebp - 0x58]
push dword [ebp - 0x8c]
call fcn.0043691e
add esp, 0x10
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x78], 0
jne 0x462d3c
cmp edx, 2
je 0x462b9f
mov ecx, dword [ebp - 0x70]
call fcn.0046d4de
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x90]
test ecx, ecx
jne 0x462c4c
xor eax, eax
mov dword [ebp - 0x7c], eax
test edx, edx
je 0x462bf2
cmp dword [ebp - 0xb8], eax
jl 0x462bd1
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x64]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
js 0x462bf8
mov esi, dword [ebp - 0x64]
mov eax, ecx
sub eax, dword [ebp - 0xac]
mov byte [eax + esi], 0
mov esi, dword [ebp - 0x9c]
jmp 0x462bf8
mov ecx, dword [ebp - 0xb4]
cmp edx, 2
jne 0x462c1a
xor eax, eax
test ecx, ecx
mov ecx, dword [ebp - 0x80]
setns al
sub ecx, eax
test ecx, ecx
jle 0x462c1a
push 0x14
pop edx
mov ecx, edi
call fcn.004366ff
mov dword [ebp - 0x7c], eax
xor eax, eax
mov edx, ebx
push eax
push eax
push dword [ebp - 0x64]
mov ecx, esi
push dword [ebp - 0xac]
push eax
push 0x6b
call fcn.004569fb
mov eax, dword [ebp - 0x7c]
add esp, 0x18
test eax, eax
je 0x462c46
mov edx, eax
mov ecx, edi
call fcn.00436c48
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x462cb8
test ecx, ecx
jne 0x462c87
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0xb8], ecx
je 0x462c87
cmp dword [ebp - 0xb4], ecx
je 0x462c87
push dword [ebp - 0xc0]
push dword [ebp - 0x58]
push dword [ebp - 0x54]
push ecx
push 0x1d
pop edx
mov ecx, edi
call fcn.0043691e
mov eax, dword [ebp - 0x40]
add esp, 0x10
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x462c98
mov ecx, edi
call fcn.0043696d
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x3c], 0
mov ecx, edi
push dword [ebp - 0x54]
mov eax, dword [ebp - 0x38]
cmovne eax, dword [ebp - 0x58]
push eax
push 0x32
pop edx
call fcn.00436721
pop ecx
pop ecx
jmp 0x462d3c
cmp dword [ebp - 0x3c], 0
mov ecx, edi
je 0x462d0e
call fcn.0043696d
push dword [ebp - 0x54]
mov ecx, edi
mov dword [ebp - 0x30], eax
push dword [ebp - 0x8c]
push 0x25
pop edx
call fcn.00436721
push dword [ebp - 0x58]
mov ecx, edi
push dword [ebp - 0x8c]
push 0x7c
pop edx
call fcn.00436721
push 0
push dword [ebp - 0x58]
mov ecx, edi
mov dword [ebp - 0xd4], eax
push dword [ebp - 0x30]
push dword [ebp - 0x2c]
push 0x1d
pop edx
call fcn.0043691e
add esp, 0x20
jmp 0x462d3c
push dword [ebp - 0x38]
push dword [ebp - 0x54]
push dword [ebp - 0xbc]
push 0x2a
pop edx
call fcn.0043669d
add esp, 0xc
mov dword [ebp - 0x30], eax
mov ecx, edi
push dword [ebp - 0x38]
push eax
push dword [ebp - 0x2c]
push 0x20
pop edx
call fcn.0043669d
add esp, 0xc
cmp byte [ebp - 0x25], 0
je 0x462d5e
push dword [ebp - 0x6c]
mov edx, dword [ebp - 0x60]
mov ecx, esi
call fcn.004487e4
pop ecx
push dword [ebp - 0x6c]
mov ecx, edi
push 0x11
pop edx
call fcn.0043670d
pop ecx
cmp byte [ebp - 0x98], 0
mov eax, dword [ebp - 0x50]
jne 0x462d77
test eax, eax
jne 0x462d7b
cmp dword [ebp - 0x5c], eax
je 0x462e4d
test eax, eax
je 0x462d86
mov edx, ebx
mov ecx, esi
call fcn.00454401
jmp 0x462d88
xor eax, eax
push dword [ebp + 0x10]
mov edx, dword [ebp - 0x5c]
mov ecx, esi
push ebx
push 3
push 0
push dword [ebp - 0x48]
mov dword [ebp - 0x60], eax
call fcn.00462197
mov edx, dword [ebp - 0x60]
xor ecx, ecx
or edx, eax
add esp, 0x14
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov dword [ebp - 0x60], edx
cmp cx, word [eax + 0x2a]
jge 0x462e2c
mov dword [ebp - 0x80], ecx
mov esi, eax
cmp edx, 0xffffffff
je 0x462df8
cmp ebx, 0x20
jge 0x462dd5
xor eax, eax
mov ecx, ebx
inc eax
shl eax, cl
test edx, eax
jne 0x462df8
mov ecx, dword [ebp - 0x80]
mov eax, dword [esi + 4]
test byte [eax + ecx + 0xf], 1
jne 0x462df8
mov eax, dword [ebp - 0xd0]
mov ecx, edi
add eax, ebx
push eax
push 0
push 0x46
pop edx
call fcn.00436721
pop ecx
pop ecx
jmp 0x462e11
mov eax, dword [ebp - 0xd0]
mov edx, esi
add eax, ebx
mov ecx, edi
push eax
push ebx
push dword [ebp - 0x2c]
call fcn.0044781f
add esp, 0xc
mov ecx, dword [ebp - 0x80]
inc ebx
movsx eax, word [esi + 0x2a]
add ecx, 0x10
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x80], ecx
cmp ebx, eax
jl 0x462dbd
mov esi, dword [ebp - 0x9c]
cmp byte [ebp - 0x25], 0
jne 0x462e4a
cmp dword [ebp - 0x3c], 0
jne 0x462e4a
push dword [ebp - 0x6c]
mov ecx, edi
push dword [ebp - 0x38]
push 0x4b
pop edx
call fcn.00436721
pop ecx
pop ecx
mov ebx, dword [ebp - 0x34]
push dword [ebp + 0x10]
mov edx, dword [ebp - 0x5c]
xor eax, eax
push ebx
inc eax
mov ecx, esi
push eax
push eax
push dword [ebp - 0x48]
call fcn.00462197
mov edx, dword [ebp - 0x34]
add esp, 0x14
mov dword [ebp - 0xcc], eax
xor ebx, ebx
xor eax, eax
cmp ax, word [edx + 0x2a]
jge 0x462f1c
movsx eax, word [edx + 0x28]
cmp ebx, eax
jne 0x462e9a
mov eax, dword [ebp - 0x68]
mov ecx, edi
add eax, ebx
push eax
push 0
push 0x46
pop edx
call fcn.00436721
pop ecx
jmp 0x462f0b
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
js 0x462ebd
mov eax, dword [ebp - 0x68]
imul edx, ecx, 0x18
add eax, ebx
push eax
mov eax, dword [ebp - 0x48]
mov ecx, esi
mov edx, dword [edx + eax + 4]
call fcn.004487e4
jmp 0x462f0b
mov eax, dword [ebp - 0x84]
xor ecx, ecx
inc ecx
and eax, ecx
mov dword [ebp - 0x7c], eax
je 0x462ee0
cmp ebx, 0x1f
jg 0x462ee0
mov eax, ecx
mov ecx, ebx
shl eax, cl
test dword [ebp - 0xcc], eax
je 0x462e85
mov eax, dword [ebp - 0x68]
mov ecx, esi
add eax, ebx
push eax
push dword [ebp - 0x2c]
push ebx
call fcn.0044795e
add esp, 0xc
cmp dword [ebp - 0x7c], 0
je 0x462f0c
mov edx, dword [ebp - 0x68]
xor eax, eax
inc eax
mov ecx, esi
push eax
lea edx, [ebx + edx]
call fcn.00447733
pop ecx
mov edx, dword [ebp - 0x34]
inc ebx
movsx eax, word [edx + 0x2a]
cmp ebx, eax
jl 0x462e7d
xor eax, eax
inc eax
test byte [ebp - 0x84], al
je 0x462fd3
push dword [ebp - 0x68]
mov ecx, edi
call fcn.00454bf8
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x5c]
pop ecx
push ebx
push dword [ebp + 0x10]
mov ecx, esi
push dword [ebp - 0x38]
push eax
xor eax, eax
inc eax
push eax
push dword [ebp - 0x48]
push 0x6f
call fcn.00462143
add esp, 0x1c
mov ecx, edi
cmp dword [ebp - 0x3c], 0
je 0x462f7c
push dword [ebp - 0xc0]
push dword [ebp - 0x58]
push ebx
push dword [ebp - 0x2c]
push 0x1d
pop edx
call fcn.0043691e
add esp, 0x10
jmp 0x462f8e
push dword [ebp - 0x38]
push ebx
push dword [ebp - 0x2c]
push 0x20
pop edx
call fcn.0043669d
add esp, 0xc
mov edx, dword [ebp - 0x34]
xor eax, eax
xor ebx, ebx
cmp ax, word [edx + 0x2a]
jge 0x462fd3
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ebx*4], 0
jge 0x462fc4
movsx eax, word [edx + 0x28]
cmp ebx, eax
je 0x462fc4
mov eax, dword [ebp - 0x68]
mov ecx, edi
add eax, ebx
push eax
push ebx
push esi
call fcn.0044781f
mov edx, dword [ebp - 0x34]
add esp, 0xc
movsx eax, word [edx + 0x2a]
inc ebx
cmp ebx, eax
jl 0x462f9e
mov esi, dword [ebp - 0x9c]
cmp dword [ebp - 0x90], 0
jne 0x463151
mov ebx, dword [ebp - 0x4c]
lea eax, [ebp - 8]
push 0
push ebx
push eax
push dword [ebp - 0x30]
and dword [ebp - 0x84], 0
mov ecx, esi
push dword [ebp + 0x10]
push dword [ebp - 0x44]
push dword [ebp - 0x38]
push dword [ebp - 0x6c]
push dword [ebp - 0xa0]
push dword [ebp - 0x2c]
push dword [ebp - 0xc4]
call fcn.00455de8
add esp, 0x2c
cmp dword [ebp - 0x50], 0
je 0x46303c
push dword [ebp - 0xb0]
mov ecx, esi
push ebx
mov ebx, dword [ebp - 0x34]
mov edx, ebx
push 0
push dword [ebp - 0x38]
call fcn.00454020
add esp, 0x10
jmp 0x46303f
mov ebx, dword [ebp - 0x34]
cmp dword [ebp - 8], 0
jne 0x46304b
cmp byte [ebp - 0x44], 0
je 0x463087
cmp dword [ebp - 0x3c], 0
mov ecx, edi
je 0x46306e
push dword [ebp - 0xc0]
push dword [ebp - 0x58]
push 0
push dword [ebp - 0x2c]
push 0x1d
pop edx
call fcn.0043691e
add esp, 0x10
jmp 0x463081
push dword [ebp - 0x38]
push 0
push dword [ebp - 0x2c]
push 0x20
pop edx
call fcn.0043669d
add esp, 0xc
mov dword [ebp - 0x84], eax
push 0xffffffffffffffff
push dword [ebp - 0xc4]
mov edx, ebx
mov ecx, esi
push dword [ebp - 0xa0]
push dword [ebp - 0x2c]
call fcn.0045166b
xor eax, eax
add esp, 0x10
inc eax
cmp dword [ebp - 0x50], eax
jg 0x4630b3
mov al, byte [ebp - 0x44]
test al, al
je 0x4630c7
push 0
push dword [ebp - 0x2c]
mov ecx, edi
push 0x78
pop edx
call fcn.00436721
mov al, byte [ebp - 0x44]
pop ecx
pop ecx
cmp dword [ebp - 8], 0
jne 0x4630d1
test al, al
je 0x4630de
mov edx, dword [ebp - 0x84]
mov ecx, edi
call fcn.00436c48
cmp dword [ebp - 0x50], 0
je 0x4630fe
push dword [ebp - 0xb0]
mov edx, ebx
mov ecx, esi
push dword [ebp - 0x4c]
push dword [ebp - 0x6c]
push 0
call fcn.00454020
add esp, 0x10
cmp dword [ebp - 0x40], 2
mov edx, ebx
push 0
push 0
push 4
pop eax
push 6
pop ecx
cmove eax, ecx
mov ecx, esi
push eax
push dword [ebp - 0xc4]
push dword [ebp - 0x6c]
push dword [ebp - 0xa0]
push dword [ebp - 0x2c]
call fcn.00456857
add esp, 0x1c
cmp dword [ebp - 0x50], 0
je 0x463154
push dword [ebp - 0xb0]
mov edx, ebx
mov ecx, esi
push dword [ebp - 0x4c]
push dword [ebp - 0x38]
push dword [ebp - 0x48]
call fcn.004549c2
add esp, 0x10
jmp 0x463154
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x46316f
xor ecx, ecx
inc ecx
push ecx
push eax
push 0x50
pop edx
mov ecx, edi
call fcn.00436721
pop ecx
pop ecx
push dword [ebp - 0x30]
mov edx, dword [ebp - 0x5c]
mov ecx, esi
push dword [ebp + 0x10]
push dword [ebp - 0x38]
push ebx
push 2
push dword [ebp - 0x48]
push 0x6f
call fcn.00462143
mov eax, dword [ebp - 0x40]
xor ebx, ebx
inc ebx
add esp, 0x1c
cmp eax, ebx
je 0x4631da
mov edx, dword [ebp - 0x30]
mov ecx, edi
cmp eax, 2
jne 0x4631b0
call fcn.004369af
mov ecx, dword [ebp - 0x70]
call fcn.0046d4de
jmp 0x4631da
cmp dword [ebp - 0x3c], 0
je 0x4631d5
call fcn.004369af
push dword [ebp - 0xd4]
mov ecx, edi
push dword [ebp - 0x8c]
push 7
pop edx
call fcn.00436721
pop ecx
pop ecx
jmp 0x4631da
call fcn.00436736
mov edx, dword [ebp - 0x54]
mov ecx, edi
call fcn.004369af
cmp byte [esi + 0x12], 0
jne 0x4631fd
cmp dword [esi + 0x7c], 0
jne 0x4631fd
cmp dword [ebp - 0x78], 0
jne 0x4631fd
mov ecx, esi
call fcn.00454f89
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x463231
push ebx
push eax
push 0x4e
pop edx
mov ecx, edi
call fcn.00436721
mov edx, ebx
mov ecx, edi
call fcn.00437aa5
push 0
push 0x4b0a9c
push 0
xor edx, edx
mov ecx, edi
call fcn.00437b0d
add esp, 0x14
lea ecx, [ebp - 0xdc]
call fcn.0044be0e
mov esi, dword [ebp - 0xa4]
mov ecx, esi
mov edx, dword [ebp - 0x4c]
call fcn.0041e862
mov edx, dword [ebp - 0x88]
mov ecx, esi
call fcn.0044fa6a
mov edx, dword [ebp - 0x48]
mov ecx, esi
call fcn.0044611f
mov edx, dword [ebp - 0x94]
mov ecx, esi
call fcn.004456e4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00476874
mov esp, ebp
pop ebp
ret