Function at 0x41ab36
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x628592
mov eax, dword fs:[0]
push eax
sub esp, 0xa50
mov eax, dword [0x652018]
xor eax, esp
mov dword [esp + 0xa48], eax
dec eax
or al, byte [eax]
add byte [ebx + 0x56], dl
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0xa60]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x34], ebx
mov eax, dword [ebx + 0x14c]
test eax, eax
je 0x41ab91
test byte [eax + 1], 8
mov byte [esp + 0x11], 1
jne 0x41ab96
mov byte [esp + 0x11], 0
mov al, byte [ebx + 0x90]
xor edi, edi
mov esi, dword [ebx + 0x110]
mov byte [esp + 0x3b], al
mov byte [ebx + 0x90], 0
mov dword [esp + 0x40], edi
test esi, esi
jne 0x41abed
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41abda
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41abd8
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41abda
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov esi, eax
mov dword [ebx + 0x110], esi
test esi, esi
je 0x41ac1a
mov ecx, esi
call 0x3db466
test al, al
jne 0x41ac03
mov ecx, esi
call 0x3da7f6
test al, al
je 0x41ac1a
mov ecx, ebx
call 0x400b66
lea edx, [ebx + 0x6c]
mov ecx, eax
call fcn.00421416
mov edi, eax
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x110]
test eax, eax
jne 0x41ac54
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41ac47
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41ac45
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41ac47
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov dword [ebx + 0x110], eax
mov ecx, eax
call 0x3db1c6
cmp eax, 0x13
jne 0x41adc3
cmp byte [esp + 0x11], 0
jne 0x41adc3
mov ecx, ebx
call 0x400b66
push 0
mov ecx, ebx
mov esi, dword [eax + 0x84]
mov eax, dword [ebx + 0x10c]
add eax, 4
push eax
push 0
call 0x400b66
push eax
push esi
mov ecx, ebx
call fcn.00473396
mov dword [esp + 0x28], eax
test edi, edi
je 0x41aca8
mov dword [eax + 0x2c], edi
mov dword [eax + 0x1c], edi
push 0x2c
lea ecx, [ebx + 0x24]
mov dword [esp + 0x1d0], 0xfeefed
mov dword [esp + 0x1d4], 0xfeefed
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0
call fcn.0053ac26
mov edi, eax
mov eax, 0x66
mov word [edi], ax
mov ecx, dword [esp + 0x1cc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [edi + 8], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [edi + 0xc], ecx
mov ecx, 0x65e308
mov eax, dword [esp + 0x1d8]
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], 0x65e308
call 0x3db1c6
push 1
push dword [esp + 0x2c]
mov ecx, ebx
mov dword [edi + 0x14], eax
call fcn.0046ae06
mov dword [edi + 0x24], eax
lea ecx, [ebx + 0x24]
mov eax, dword [esp + 0x28]
push 0x30
mov eax, dword [eax + 0x1c]
mov dword [edi + 0x28], eax
call fcn.0053ac26
mov edx, eax
mov eax, 0x1e
mov word [edx], ax
mov ecx, dword [esp + 0x1cc]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [edx + 0xc], ecx
lea ecx, [edx + 0x18]
mov eax, dword [esp + 0x1d8]
mov dword [edx + 0x10], eax
mov eax, 0xfffe
mov word [edx + 0x20], ax
mov eax, dword [ebx + 0x1d8]
mov dword [edx + 0x24], eax
mov eax, dword [ebx + 0x12c]
mov dword [edx + 0x14], eax
mov dword [ecx], 0
mov eax, dword [ebx + 0x10c]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x128]
mov dword [eax], edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x12c], edx
or word [edx + 2], 0x10
mov dword [edx + 0x28], edi
mov eax, dword [ebx + 0x110]
xor esi, esi
test eax, eax
jne 0x41adff
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41adf2
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41adf0
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41adf2
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov dword [ebx + 0x110], eax
push 0
push 0
push 0
push eax
lea ecx, [esp + 0x1c0]
call 0x3e46b6
lea ecx, [esp + 0x1b0]
call 0x3e47a6
test eax, eax
je 0x41ae48
mov bl, byte [esp + 0x11]
mov dl, bl
mov ecx, eax
call fcn.0041a726
test al, al
je 0x41ae34
inc esi
lea ecx, [esp + 0x1b0]
call 0x3e47a6
test eax, eax
jne 0x41ae26
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0xa28]
mov dword [esp + 0x48], eax
cmp esi, 0xc
jbe 0x41aec9
mov edi, dword [ebx + 0x14]
xor ecx, ecx
mov eax, esi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
mov eax, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], eax
jne 0x41ae87
cmp dword [edi], 0
jne 0x41ae87
mov eax, 1
mov dword [esp + 0x28], eax
push eax
mov edx, 3
lea ecx, [esp + 0x74]
call 0x3bd1b6
mov esi, dword [eax]
mov eax, dword [edi + 4]
and esi, 0xfffffffc
sub eax, dword [edi]
cmp eax, esi
jae 0x41aeaf
push dword [esp + 0x28]
mov ecx, edi
call 0x3bcee6
mov ecx, dword [edi]
push dword [esp + 0x3c]
push 0
lea eax, [esi + ecx]
push ecx
mov dword [edi], eax
call 0x5a49c2
add esp, 0xc
mov dword [esp + 0x48], eax
mov esi, dword [ebx + 0x110]
mov dword [esp + 0x24], 0
test esi, esi
jne 0x41af0d
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41aefe
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41aefc
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41aefe
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov esi, eax
mov dword [ebx + 0x110], esi
mov byte [esp + 0x12], 0
test esi, esi
jne 0x41af29
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1b8], esi
jmp 0x41b01b
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405210], 8
je 0x41af46
mov ecx, esi
call 0x3c4d56
mov edi, eax
jmp 0x41af7a
movzx eax, byte [esi]
cmp eax, 3
je 0x41af58
cmp eax, 6
jne 0x41af69
mov esi, dword [esi + 0x50]
jmp 0x41af65
mov ecx, esi
call 0x3dc906
test eax, eax
je 0x41af65
mov esi, eax
test esi, esi
jne 0x41af46
mov ecx, esi
call 0x3e9c66
test byte [esi + 0x58], 1
mov edi, eax
mov dl, 1
jne 0x41af7e
mov dl, byte [esp + 0x12]
test byte [edi + 0x60], 0x80
je 0x41afb1
movzx eax, byte [edi]
mov al, byte [eax + eax*2 + 0x405210]
shr al, 4
and al, 1
je 0x41af9d
mov ecx, dword [edi + 0xac]
jmp 0x41af9f
xor ecx, ecx
test ecx, ecx
je 0x41afb1
test al, al
je 0x41afaf
mov edi, dword [edi + 0xac]
jmp 0x41afb1
xor edi, edi
mov dword [esp + 0x1b0], edi
mov ecx, edi
mov byte [esp + 0x1b4], dl
mov byte [esp + 0x1b5], 0
test dl, dl
je 0x41afd7
call 0x3dacd6
mov eax, dword [edi + 0x58]
jmp 0x41afdc
call 0x3dad26
mov ecx, dword [eax + 0x60]
test ecx, ecx
je 0x41afef
lea ecx, [ecx]
mov eax, ecx
mov ecx, dword [eax + 0x60]
test ecx, ecx
jne 0x41afe6
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
mov byte [esp + 0x1b6], 0
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x1c8], 0
call 0x3e47a6
mov edi, eax
test edi, edi
je 0x41b1cb
mov ecx, edi
call 0x3dd2c6
test al, al
jne 0x41b0ce
mov al, byte [edi]
mov byte [esp + 0x13], al
movzx eax, al
lea edx, [eax + eax*2]
test byte [edx + 0x405210], 0x80
je 0x41b0ce
mov ecx, dword [edi + 0x5c]
and ecx, 7
je 0x41b086
mov al, byte [edi + 1]
shr al, 3
and al, 1
cmp al, byte [esp + 0x11]
jne 0x41b086
test byte [edx + 0x405211], 1
jne 0x41b0b9
cmp byte [esp + 0x13], 0x12
je 0x41b0b9
test ecx, ecx
jne 0x41b0ce
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3db1c6
cmp eax, 0xc
je 0x41b0b2
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3db1c6
cmp eax, 0xf
jne 0x41b0ce
cmp byte [esp + 0x11], 0
je 0x41b0ce
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], edi
inc eax
mov dword [esp + 0x24], eax
jmp 0x41b1b5
mov esi, edi
test edi, edi
je 0x41b0f9
mov edi, edi
movzx eax, byte [esi]
cmp eax, 3
je 0x41b0e8
cmp eax, 6
jne 0x41b0f9
mov esi, dword [esi + 0x50]
jmp 0x41b0f5
mov ecx, esi
call 0x3dc906
test eax, eax
je 0x41b0f5
mov esi, eax
test esi, esi
jne 0x41b0d6
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405211], 0x80
jne 0x41b118
mov al, byte [eax + eax*2 + 0x405210]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and esi, eax
cmp byte [esi], 9
jne 0x41b1b5
mov ecx, edi
call 0x3fbae6
test byte [eax + 0x7a], 0x40
jne 0x41b1b5
mov ecx, edi
call 0x3fbae6
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
mov byte [esp + 0x5c], 0
call 0x3e4a46
mov esi, eax
test esi, esi
je 0x41b1b5
mov al, byte [esi + 0x54]
test al, 8
jne 0x41b1a6
test al, 7
je 0x41b1a6
mov ecx, edi
call 0x3fbae6
cmp byte [esp + 0x11], 0
jne 0x41b187
test byte [eax + 1], 8
je 0x41b196
mov eax, dword [esi + 0x14]
test byte [eax + 1], 8
je 0x41b196
jmp 0x41b1a6
test byte [eax + 1], 8
je 0x41b1a6
mov eax, dword [esi + 0x14]
test byte [eax + 1], 8
je 0x41b1a6
mov ecx, edi
call 0x3fbae6
push esi
push eax
mov ecx, ebx
call fcn.0041c666
lea ecx, [esp + 0x50]
call 0x3e4a46
mov esi, eax
test esi, esi
jne 0x41b15d
lea ecx, [esp + 0x1b0]
call 0x3e47a6
mov edi, eax
test edi, edi
jne 0x41b03c
mov edi, dword [esp + 0x24]
push 0x455d40
push 4
push edi
push dword [esp + 0x54]
call dword [0x660320]
mov ecx, dword [ebx + 0x118]
add esp, 0x10
mov eax, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x7c]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], ecx
test edi, edi
je 0x41c1a8
mov eax, dword [esp + 0x48]
mov byte [esp + 0x13], 0
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x20], edi
mov cl, byte [edi]
movzx eax, cl
test byte [eax + eax*2 + 0x405210], 8
je 0x41b267
test byte [eax + eax*2 + 0x405211], 0x80
je 0x41b263
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, eax
test ecx, ecx
je 0x41b25c
movzx eax, byte [ecx]
test byte [eax + eax*2 + 0x405211], 0x80
je 0x41b25c
call 0x3c4ca6
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4d56
jmp 0x41b29d
mov eax, edi
jmp 0x41b29d
cmp cl, 5
jne 0x41b2d0
mov eax, dword [edi + 0x5c]
test eax, eax
jne 0x41b2a1
mov eax, dword [edi + 0x14]
test eax, eax
je 0x41b29b
mov cl, byte [eax]
cmp cl, 5
jne 0x41b287
cmp dword [eax + 0x5c], 0
jne 0x41b2a6
movzx ecx, cl
test byte [ecx + ecx*2 + 0x405210], 8
jne 0x41b2ab
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x41b27a
xor eax, eax
test eax, eax
je 0x41b2f6
mov ecx, dword [eax + 0x50]
jmp 0x41b2f8
mov eax, dword [eax + 0x5c]
jmp 0x41b29d
movzx ecx, byte [eax]
test byte [ecx + ecx*2 + 0x405211], 0x80
je 0x41b29d
mov ecx, dword [eax + 0x50]
call 0x3dc906
mov ecx, eax
call 0x3c4d56
mov ecx, eax
call 0x3c4d56
jmp 0x41b29d
mov eax, dword [edi + 0x14]
test eax, eax
je 0x41b2f6
mov cl, byte [eax]
cmp cl, 5
je 0x41b37b
movzx ecx, cl
test byte [ecx + ecx*2 + 0x405210], 8
jne 0x41b362
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x41b2d7
xor ecx, ecx
test ecx, ecx
je 0x41b302
cmp dword [ecx + 0x4c], 0
je 0x41b304
xor ecx, ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
mov dword [ebx + 0x118], eax
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x7c], esi
test ecx, ecx
je 0x41b34a
cmp ecx, esi
je 0x41b34a
mov dword [ebx + 0x7c], ecx
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x118], eax
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x41b34a
cmp byte [ebx + 0x88], 0
je 0x41b34a
test edx, edx
je 0x41b34a
push ecx
call eax
test eax, eax
je 0x41b34a
mov dword [ebx + 0x1c], eax
mov esi, edi
movzx eax, byte [esi]
cmp eax, 3
je 0x41b3c7
cmp eax, 6
jne 0x41b3dc
mov esi, dword [esi + 0x50]
jmp 0x41b3d4
movzx ecx, byte [eax]
test byte [ecx + ecx*2 + 0x405211], 0x80
je 0x41b29d
mov ecx, dword [eax + 0x50]
jmp 0x41b236
mov ecx, dword [eax + 0x5c]
test ecx, ecx
je 0x41b389
mov eax, ecx
jmp 0x41b29d
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x41b29b
mov edi, edi
mov al, byte [ecx]
cmp al, 5
jne 0x41b3a2
cmp dword [ecx + 0x5c], 0
jne 0x41b3bf
movzx eax, al
test byte [eax + eax*2 + 0x405210], 8
jne 0x41b25c
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x41b396
jmp 0x41b29b
mov eax, dword [ecx + 0x5c]
jmp 0x41b29d
mov ecx, esi
call 0x3dc906
test eax, eax
je 0x41b3d4
mov esi, eax
test esi, esi
jne 0x41b34c
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405211], 0x80
jne 0x41b3fb
mov al, byte [eax + eax*2 + 0x405210]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and esi, eax
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405210], 0x80
je 0x41b4aa
test byte [esi + 0x5c], 7
jne 0x41b4aa
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov esi, eax
test esi, esi
je 0x41b449
mov edi, edi
movzx eax, byte [esi]
cmp eax, 3
je 0x41b438
cmp eax, 6
jne 0x41b449
mov esi, dword [esi + 0x50]
jmp 0x41b445
mov ecx, esi
call 0x3dc906
test eax, eax
je 0x41b445
mov esi, eax
test esi, esi
jne 0x41b426
mov ecx, esi
call 0x3db1c6
cmp eax, 0xc
je 0x41b495
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov esi, eax
test esi, esi
je 0x41b489
lea ecx, [ecx]
movzx eax, byte [esi]
cmp eax, 3
je 0x41b478
cmp eax, 6
jne 0x41b489
mov esi, dword [esi + 0x50]
jmp 0x41b485
mov ecx, esi
call 0x3dc906
test eax, eax
je 0x41b485
mov esi, eax
test esi, esi
jne 0x41b466
mov ecx, esi
call 0x3db1c6
cmp eax, 0xf
jne 0x41b4aa
mov eax, dword [edi + 0x5c]
and eax, 0xfffffff9
mov byte [esp + 0x13], 1
or eax, 1
or byte [edi + 1], 8
mov dword [edi + 0x5c], eax
mov ecx, dword [edi + 0x5c]
mov eax, ecx
shr eax, 9
test al, 1
je 0x41b70b
test byte [edi + 1], 1
mov byte [esp + 0x12], 0
jne 0x41b4c9
xor edi, edi
jmp 0x41b4cc
add edi, 0xffffffe0
mov esi, dword [ebx + 0x110]
test esi, esi
jne 0x41b508
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41b4f9
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41b4f7
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41b4f9
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov esi, eax
mov dword [ebx + 0x110], esi
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x110]
test eax, eax
jne 0x41b54d
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41b540
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41b53e
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41b540
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov dword [ebx + 0x110], eax
mov ecx, eax
call 0x3dad26
push 0
push 0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x22]
push ecx
push edi
push esi
push 0
push 1
push dword [esp + 0x40]
mov ecx, ebx
push 0
push eax
call 0x3fbb46
cmp byte [esp + 0x12], 0
mov esi, eax
jne 0x41c169
test esi, esi
je 0x41c169
mov ecx, esi
call 0x3fbae6
cmp byte [eax], 0x1f
jne 0x41c169
mov edi, dword [esp + 0x20]
test byte [edi + 1], 1
je 0x41b5dd
mov eax, dword [edi - 0x20]
mov dword [esp + 0x22c], eax
mov eax, dword [edi - 0x1c]
mov dword [esp + 0x230], eax
mov eax, dword [edi - 0x18]
mov dword [esp + 0x234], eax
mov eax, dword [edi - 0x14]
lea edi, [esp + 0x22c]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x238], eax
jmp 0x41b614
lea eax, [esp + 0x21c]
mov dword [esp + 0x21c], 0xfeefed
mov dword [esp + 0x220], 0xfeefed
mov dword [esp + 0x224], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x14], eax
mov ecx, esi
call 0x3fbae6
test byte [edi + 1], 1
mov dword [esp + 0x1c], eax
jne 0x41b629
xor edi, edi
jmp 0x41b62c
add edi, 0xffffffe0
mov ecx, esi
call 0x3fbae6
mov ecx, dword [eax + 0x50]
call 0x3dc906
mov esi, eax
test esi, esi
je 0x41b669
jmp 0x41b646
movzx eax, byte [esi]
cmp eax, 3
je 0x41b658
cmp eax, 6
jne 0x41b669
mov esi, dword [esi + 0x50]
jmp 0x41b665
mov ecx, esi
call 0x3dc906
test eax, eax
je 0x41b665
mov esi, eax
test esi, esi
jne 0x41b646
push 0
push 0x60
push dword [esp + 0x48]
mov ecx, ebx
push 0
push 0
push dword [esp + 0x30]
push edi
call fcn.00462a66
mov edi, eax
test esi, esi
jne 0x41b6a9
push dword [esp + 0x14]
mov ecx, ebx
push esi
push esi
push 0x65e308
push 0x2c
call fcn.00473196
mov edi, dword [esp + 0x20]
or word [eax + 2], 1
jmp 0x41b83d
push 0x30
lea ecx, [ebx + 0x24]
call fcn.0053ac26
mov edx, eax
mov eax, 0x67
mov dword [esp + 0x18], edx
mov word [edx], ax
test edi, edi
je 0x41b6d4
mov ax, word [edi + 2]
and ax, 1
mov dword [edx + 0x24], edi
or word [edx + 2], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [edx + 4], eax
mov eax, dword [ecx + 4]
mov dword [edx + 8], eax
mov eax, dword [ecx + 8]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0xc]
mov ecx, esi
mov dword [edx + 0x10], eax
mov dword [edx + 0x1c], esi
call 0x3db1c6
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [ecx + 0x14], eax
mov eax, ecx
jmp 0x41b841
shr ecx, 0xa
test cl, 1
je 0x41b7be
mov ecx, dword [edi + 0x50]
call 0x3dc906
mov ecx, dword [ebx + 0xa0]
push 0
push 0
push 0
push 2
push eax
call fcn.00484356
test byte [edi + 1], 1
mov edx, eax
je 0x41b77c
mov eax, dword [edi - 0x18]
mov ecx, dword [edi - 0x20]
push 0
push 0x40
push dword [esp + 0x48]
mov dword [esp + 0x220], eax
mov eax, dword [edi - 0x14]
push 0
mov dword [esp + 0x21c], ecx
mov ecx, dword [edi - 0x1c]
push 0
mov dword [esp + 0x22c], eax
lea eax, [esp + 0x220]
mov dword [esp + 0x224], ecx
push edx
jmp 0x41b835
push 0
push 0x40
push dword [esp + 0x48]
mov dword [esp + 0x258], 0xfeefed
lea eax, [esp + 0x258]
push 0
push 0
mov dword [esp + 0x264], 0xfeefed
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0
push edx
jmp 0x41b835
test byte [edi + 1], 1
je 0x41b7f5
mov eax, dword [edi - 0x20]
mov dword [esp + 0x23c], eax
mov eax, dword [edi - 0x1c]
mov dword [esp + 0x240], eax
mov eax, dword [edi - 0x18]
mov dword [esp + 0x244], eax
mov eax, dword [edi - 0x14]
mov dword [esp + 0x248], eax
lea eax, [esp + 0x23c]
jmp 0x41b828
mov dword [esp + 0x1dc], 0xfeefed
lea eax, [esp + 0x1dc]
mov dword [esp + 0x1e0], 0xfeefed
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e8], 0
push 0
push 0x40
push dword [esp + 0x48]
push 0
push 0
push edi
push eax
mov ecx, ebx
call fcn.00462a66
mov dword [esp + 0x18], eax
cmp byte [esp + 0x13], 0
je 0x41b850
and dword [edi + 0x5c], 0xfffffff8
and byte [edi + 1], 0xf7
test byte [eax + 2], 1
jne 0x41c169
lea ecx, [ebx + 0x208]
test ecx, ecx
je 0x41b868
mov edx, dword [ecx]
jmp 0x41b86a
xor edx, edx
mov dword [esp + 0x50], 0x41eec8
mov dword [esp + 0x28], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ecx
mov byte [esp + 0x5c], 0
mov dword [esp + 0x50], 0x41bbec
mov dword [esp + 0xa68], 2
cmp word [eax], 0x5c
jne 0x41b8aa
cmp dword [ecx], 0
jne 0x41c1e7
mov eax, dword [eax + 0x28]
mov dword [ecx], eax
mov eax, dword [ebx + 0x110]
xor esi, esi
mov ecx, dword [ebx + 0x8c]
mov dword [esp + 0x4c], ecx
test eax, eax
jne 0x41b8ea
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41b8dd
test ecx, ecx
je 0x41b8db
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41b8dd
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov dword [ebx + 0x110], eax
mov ecx, eax
call 0x3dad26
mov dword [ebx + 0x8c], eax
mov eax, dword [edi + 0x5c]
shr eax, 3
test al, 1
je 0x41bac2
mov eax, dword [esp + 0x20]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], edi
mov esi, dword [eax + 0x60]
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x14], ecx
test esi, esi
je 0x41ba71
mov eax, dword [ebx + 0x17c]
lea edi, [esi + 0x2c]
push ecx
push ecx
push ecx
push dword [eax + 0x161c]
push ecx
push dword [ebx + 0x10]
lea ecx, [esp + 0x7a4]
push dword [ebx + 0xc]
push dword [ebx + 0x14]
call fcn.00491b16
mov byte [esp + 0xa68], 4
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b96b
mov al, byte [esi + 1]
sub ecx, edx
sar ecx, 1
and al, 1
jne 0x41b985
xor edx, edx
jmp 0x41b988
lea edx, [esi - 0x20]
test al, al
jne 0x41b990
xor eax, eax
jmp 0x41b993
lea eax, [esi - 0x20]
push 0
push dword [edx + 8]
push dword [eax]
push 0
push ecx
push edi
push dword [ebx + 0xc]
lea ecx, [esp + 0x160]
call 0x3d1d46
mov byte [esp + 0xa68], 5
mov ecx, dword [ebx + 0x17c]
test ecx, ecx
je 0x41b9c7
mov ecx, dword [ecx + 0x1558]
jmp 0x41b9c9
xor ecx, ecx
mov eax, dword [ebx + 0x7c]
push dword [eax + 0xac]
lea eax, [esp + 0x1d0]
push ecx
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x1c]
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x7ac]
call fcn.00492506
test byte [esi + 1], 1
jne 0x41ba11
mov dword [esp + 0x14], 0
jmp 0x41ba18
lea eax, [esi - 0x20]
mov dword [esp + 0x14], eax
mov byte [esp + 0xa68], 4
lea ecx, [esp + 0x144]
call 0x3d20e6
mov byte [esp + 0xa68], 2
mov eax, dword [esp + 0xa14]
test eax, eax
je 0x41ba4e
push eax
push 0
push dword [0x65e8d0]
call dword [0x66016c]
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov edi, dword [esp + 0x30]
mov dword [esp + 0xa0c], eax
mov dword [esp + 0xa10], eax
mov dword [esp + 0xa14], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x41ba88
cmp byte [eax], 3
jne 0x41ba88
test byte [eax + 1], 1
je 0x41ba88
lea edx, [eax - 0x20]
jmp 0x41ba8a
xor edx, edx
test ecx, ecx
je 0x41ba92
mov ecx, dword [ecx]
jmp 0x41ba94
xor ecx, ecx
push dword [esp + 0x14]
mov eax, edi
lea esi, [esp + 0x1d0]
neg eax
sbb eax, eax
and eax, esi
push eax
push edi
push dword [esp + 0x28]
mov edi, dword [esp + 0x28]
push edx
push ecx
push edi
mov ecx, ebx
call fcn.0041a436
mov esi, eax
jmp 0x41bf5d
mov cl, byte [edi]
movzx eax, cl
test byte [eax + eax*2 + 0x405211], 1
je 0x41bbf9
mov edi, dword [edi + 0x60]
test edi, edi
je 0x41bf59
mov eax, dword [ebx + 0x17c]
lea ecx, [esp + 0x4f4]
push 1
push 0
push 0
push dword [eax + 0x161c]
lea esi, [edi + 0x2c]
push 0
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 0x14]
call fcn.00491b16
mov byte [esp + 0xa68], 7
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bb19
mov al, byte [edi + 1]
sub ecx, edx
sar ecx, 1
and al, 1
jne 0x41bb33
xor edx, edx
jmp 0x41bb36
lea edx, [edi - 0x20]
test al, al
jne 0x41bb3e
xor edi, edi
jmp 0x41bb41
add edi, 0xffffffe0
push 0
push dword [edx + 8]
push dword [edi]
push 0
push ecx
push esi
push dword [ebx + 0xc]
lea ecx, [esp + 0xf8]
call 0x3d1d46
mov byte [esp + 0xa68], 8
mov ecx, dword [ebx + 0x17c]
test ecx, ecx
je 0x41bb75
mov ecx, dword [ecx + 0x1558]
jmp 0x41bb77
xor ecx, ecx
mov eax, dword [ebx + 0x7c]
push dword [eax + 0xac]
lea eax, [esp + 0xe0]
push ecx
push dword [ebx + 0x1c]
lea ecx, [esp + 0x500]
push eax
call fcn.00492286
mov edi, dword [esp + 0x18]
mov ecx, ebx
push edi
push eax
call fcn.00512866
mov esi, eax
mov byte [esp + 0xa68], 7
lea ecx, [esp + 0xdc]
call 0x3d20e6
mov byte [esp + 0xa68], 2
mov eax, dword [esp + 0x77c]
test eax, eax
je 0x41bbdd
push eax
push 0
push dword [0x65e8d0]
call dword [0x66016c]
xor eax, eax
mov dword [esp + 0x774], eax
mov dword [esp + 0x778], eax
mov dword [esp + 0x77c], eax
jmp 0x41bf5d
cmp cl, 0x12
jne 0x41bf59
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x210]
mov dword [esp + 0x1fc], 0xfeefed
mov dword [esp + 0x200], 0xfeefed
mov dword [esp + 0x204], esi
mov dword [esp + 0x208], esi
mov eax, dword [eax + 0x964]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x14], esi
cmp dword [eax + 0xc], esi
jbe 0x41beaf
mov ecx, dword [esp + 0x14]
lea esi, [edi + 0x70]
mov dword [esp + 0x30], esi
jmp 0x41bc66
mov esi, dword [esi]
test esi, esi
je 0x41be8f
mov eax, dword [ebx + 0x17c]
lea ecx, [esp + 0x25c]
push 0
push 0
push 0
push dword [eax + 0x161c]
lea edi, [esi + 0x2c]
push 0
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 0x14]
call fcn.00491b16
mov byte [esp + 0xa68], 0xa
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bca9
mov al, byte [esi + 1]
sub ecx, edx
sar ecx, 1
and al, 1
jne 0x41bcc3
xor edx, edx
jmp 0x41bcc6
lea edx, [esi - 0x20]
test al, al
jne 0x41bcce
xor esi, esi
jmp 0x41bcd1
add esi, 0xffffffe0
push 0
push dword [edx + 8]
push dword [esi]
push 0
push ecx
push edi
push dword [ebx + 0xc]
lea ecx, [esp + 0x90]
call 0x3d1d46
mov byte [esp + 0xa68], 0xb
mov ecx, dword [ebx + 0x17c]
test ecx, ecx
je 0x41bd05
mov ecx, dword [ecx + 0x1558]
jmp 0x41bd07
xor ecx, ecx
mov eax, dword [ebx + 0x7c]
push dword [eax + 0xac]
lea eax, [esp + 0x70]
push ecx
push 0
push eax
push dword [ebx + 0x1c]
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x274]
call fcn.00492166
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x41bd73
mov byte [esp + 0xa68], 0xa
lea ecx, [esp + 0x74]
call 0x3d20e6
mov byte [esp + 0xa68], 2
mov eax, dword [esp + 0x4e4]
test eax, eax
je 0x41be8b
push eax
push 0
push dword [0x65e8d0]
call dword [0x66016c]
jmp 0x41be8b
push 0
push dword [esp + 0x48]
mov ecx, ebx
push 0
push 0x10
push eax
call fcn.00458e36
mov edi, eax
mov byte [esp + 0xa68], 0xa
lea ecx, [esp + 0x74]
call 0x3d20e6
mov byte [esp + 0xa68], 2
mov eax, dword [esp + 0x4e4]
test eax, eax
je 0x41bdba
push eax
push 0
push dword [0x65e8d0]
call dword [0x66016c]
xor eax, eax
mov dword [esp + 0x4dc], eax
mov dword [esp + 0x4e0], eax
mov dword [esp + 0x4e4], eax
test edi, edi
je 0x41be8b
test byte [edi + 2], 1
jne 0x41be8b
movsx eax, word [edi]
test eax, eax
js 0x41bdf9
cmp eax, 0x77
jae 0x41bdf9
movzx eax, word [eax*2 + 0x40a098]
jmp 0x41bdfb
xor eax, eax
test al, 1
je 0x41be34
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
cmp dword [edi + 0x2c], 0
jg 0x41be69
jl 0x41be15
cmp dword [edi + 0x28], 0
jae 0x41be69
cmp byte [ebx + 0x88], 0
je 0x41be69
lea eax, [edi + 4]
push eax
push 0x7793
push dword [ebx + 0x1c]
call 0x3cd1b6
add esp, 0xc
jmp 0x41be69
mov eax, dword [ebx + 0x210]
lea ecx, [esp + 0x1fc]
push ecx
push ecx
mov esi, dword [eax + 0x964]
mov eax, ecx
push esi
push eax
push 0
push 1
mov ecx, ebx
call fcn.004708d6
add esp, 4
mov ecx, ebx
push eax
push edi
push esi
push 0x37
call fcn.00473196
mov edi, eax
lea eax, [edi + 4]
mov ecx, ebx
push eax
push 0
push edi
push 0x65e308
push 0x4f
call fcn.00473196
mov ecx, dword [esp + 0x1c]
lea edx, [eax + 0x28]
mov dword [ecx], eax
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
inc ecx
mov esi, dword [esp + 0x30]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], esi
mov eax, dword [eax + 0x1c]
cmp ecx, dword [eax + 0xc]
jb 0x41bc66
mov eax, dword [esp + 0x18]
lea edi, [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x41bedb
push edi
push eax
push eax
push 0x65e308
push 0x2c
mov ecx, ebx
call fcn.00473196
mov esi, eax
or word [esi + 2], 1
jmp 0x41bf2c
push 0x2c
lea ecx, [ebx + 0x24]
call fcn.0053ac26
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, 0x25
mov word [esi], ax
test ecx, ecx
je 0x41bf06
mov ax, word [ecx + 2]
and ax, 1
mov dword [esi + 0x24], ecx
or word [esi + 2], ax
mov eax, dword [edi]
mov ecx, dword [esp + 0x44]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
mov dword [esi + 8], eax
mov eax, dword [edi + 8]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], ecx
call 0x3db1c6
mov dword [esi + 0x14], eax
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx]
cmp ax, 0x67
je 0x41bf4b
cmp ax, 0x68
je 0x41bf4b
push esi
push ecx
push edi
mov ecx, ebx
call fcn.004669d6
jmp 0x41bf57
push 0
push esi
push ecx
push edi
mov ecx, ebx
call fcn.00511b56
mov esi, eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x8c], eax
test esi, esi
je 0x41c141
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x5c]
mov eax, ecx
shr eax, 0xb
test al, 1
jne 0x41c141
test byte [edx + 1], 1
mov dword [esp + 0x30], 0xfeefed
mov dword [esp + 0x1c], 0xfeefed
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], 0
je 0x41bfc5
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x14], eax
shr ecx, 0xa
test cl, 1
je 0x41c0b5
mov ecx, dword [edx + 0x50]
call 0x3dc906
lea ecx, [esi + 4]
push ecx
push edi
push esi
push eax
mov dword [esp + 0x54], ecx
mov ecx, ebx
push 0x63
call fcn.00473196
mov esi, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
test byte [esi + 1], 1
je 0x41c02c
mov ecx, dword [esi - 0x20]
lea edi, [esp + 0x1ec]
mov eax, dword [esi - 0x18]
mov dword [esp + 0x1ec], ecx
mov ecx, dword [esi - 0x1c]
mov dword [esp + 0x1f4], eax
mov eax, dword [esi - 0x14]
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1f8], eax
jmp 0x41c05f
mov dword [esp + 0x1b0], 0xfeefed
lea edi, [esp + 0x1b0]
mov dword [esp + 0x1b4], 0xfeefed
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
mov ecx, dword [esi + 0x38]
call 0x3fbae6
test byte [esi + 1], 1
jne 0x41c071
xor ecx, ecx
jmp 0x41c074
lea ecx, [esi - 0x20]
mov esi, dword [esi + 0x38]
push edi
push 0
push 0
push 0x60
push dword [esp + 0x50]
push 0
push 0
push eax
push ecx
mov ecx, ebx
call fcn.00462a66
push eax
mov ecx, esi
call 0x3f67f6
push eax
push 0x67
mov ecx, ebx
call fcn.00473196
push 0
push dword [esp + 0x50]
mov ecx, ebx
push eax
push dword [esp + 0x50]
call fcn.00511b56
mov esi, eax
push 0x30
lea ecx, [ebx + 0x24]
call fcn.0053ac26
mov edi, eax
mov ecx, dword [esp + 0x20]
mov eax, 0x1e
lea edx, [edi + 0x18]
mov word [edi], ax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x10], eax
mov eax, 0xfffe
mov word [edi + 0x20], ax
mov eax, dword [ebx + 0x1d8]
mov dword [edi + 0x24], eax
mov eax, dword [ebx + 0x12c]
mov dword [edi + 0x14], eax
mov dword [edx], 0
mov eax, dword [ebx + 0x10c]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x128]
mov dword [eax], edi
mov dword [ebx + 0x128], edx
mov dword [ebx + 0x12c], edi
mov dword [edi + 0x28], esi
call 0x3e0c06
test eax, eax
je 0x41c13c
cmp dword [eax + 0x4c], 0
je 0x41c13e
xor eax, eax
mov dword [edi + 0x2c], eax
mov dword [esp + 0xa68], 0xffffffff
lea eax, [ebx + 0x208]
mov dword [esp + 0x50], 0x41bbec
test eax, eax
je 0x41c164
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov byte [esp + 0x5c], 1
mov eax, dword [ebx + 0xa0]
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x41c196
lea esp, [esp]
cmp dword [eax + 8], 2
jne 0x41c190
mov byte [eax + 0xc], 0
mov eax, dword [eax]
test eax, eax
jne 0x41c186
mov esi, dword [esp + 0x68]
cmp ecx, dword [esp + 0x24]
jb 0x41b20a
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x118], eax
mov eax, dword [ebx + 0x110]
mov dword [ebx + 0x7c], esi
test eax, eax
jne 0x41c243
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x41c22e
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x41c22c
call 0x3e9c66
mov dword [ebx + 0x114], eax
jmp 0x41c22e
lea ecx, [esp + 0x1b0]
call dword [0x660330]
mov byte [esp + 0xa68], 3
mov dword [esp + 0x1b0], 0x40cc48
mov dword [esp + 0x1bc], 0x40bbf0
mov byte [esp + 0xa68], 2
lea eax, [esp + 0x1b0]
push 0x651bb0
push eax
call 0x5a4c6c
xor eax, eax
mov ecx, eax
call 0x3e0a96
mov dword [ebx + 0x110], eax
test eax, eax
je 0x41c3d0
mov ecx, ebx
call 0x400b66
mov eax, dword [eax + 0x9c]
mov dword [esp + 0x24], eax
test eax, eax
je 0x41c3d0
xor edi, edi
test eax, eax
je 0x41c3bd
mov edx, dword [eax + 0x54]
cmp edi, edx
jae 0x41c3bd
mov ecx, dword [eax + edi*4 + 0x68]
inc edi
test ecx, ecx
je 0x41c269
mov ebx, dword [ecx + 0x4c]
cmp byte [ecx], 0x14
jne 0x41c39a
cmp byte [ecx + 0x78], 0
je 0x41c39a
mov al, byte [ecx + 1]
shr al, 3
and al, 1
cmp al, byte [esp + 0x11]
jne 0x41c396
mov esi, dword [esp + 0x34]
lea eax, [esp + 0x1b0]
push 0
push 0x40
push dword [esp + 0x48]
mov dword [esp + 0x1bc], 0xfeefed
push 0
push 0
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x1d0], 0xfeefed
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d8], 0
call fcn.00462a66
test byte [eax + 2], 1
jne 0x41c396
push 0
push 0
push 0
push 0
push 0
push 0
push eax
mov ecx, esi
call fcn.0041a436
mov ecx, dword [esp + 0x34]
mov esi, eax
push 0x30
lea ecx, [ecx + 0x24]
call fcn.0053ac26
mov ecx, dword [esp + 0x34]
mov edx, eax
mov eax, 0x1e
mov word [edx], ax
mov eax, 0xfffe
mov dword [edx + 4], 0xfeefed
mov dword [edx + 8], 0xfeefed
mov word [edx + 0x20], ax
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov eax, dword [ecx + 0x1d8]
mov dword [edx + 0x24], eax
mov eax, dword [ecx + 0x12c]
lea ecx, [edx + 0x18]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [ecx], 0
mov eax, dword [eax + 0x10c]
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x128]
mov dword [eax], edx
mov eax, dword [esp + 0x34]
mov dword [eax + 0x128], ecx
mov dword [eax + 0x12c], edx
mov dword [edx + 0x28], esi
mov eax, dword [esp + 0x24]
test ebx, ebx
jne 0x41c3b3
mov ecx, dword [eax + 0x54]
jmp 0x41c3a6
cmp edi, ecx
jae 0x41c3bd
mov ebx, dword [eax + edi*4 + 0x68]
inc edi
test ebx, ebx
je 0x41c3a6
mov ecx, ebx
mov ebx, dword [ebx + 0x4c]
jmp 0x41c27d
mov eax, dword [eax + 0x64]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x41c25c
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 0x14c]
test eax, eax
je 0x41c635
test byte [eax + 0x79], 4
je 0x41c635
test byte [eax + 1], 8
jne 0x41c635
cmp byte [eax], 0xa
jne 0x41c635
mov ecx, ebx
call 0x400b66
xor dl, dl
mov ecx, eax
call fcn.0041a7b6
test al, al
je 0x41c635
mov eax, dword [ebx + 0xc]
mov ecx, ebx
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x430]
call 0x400b66
mov ecx, eax
call 0x3dad26
push 0
push 1
mov edx, esi
mov ecx, eax
call 0x3f7426
mov esi, eax
test esi, esi
je 0x41c635
mov edi, edi
mov ecx, esi
call 0x3fbae6
mov ecx, dword [ebx + 0xc]
mov edi, eax
mov edx, edi
call fcn.0041aac6
test al, al
jne 0x41c49f
mov ecx, esi
call 0x3e0906
mov edi, eax
test edi, edi
jne 0x41c494
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x41c494
cmp byte [esi], 5
je 0x41c494
cmp byte [ecx], 5
jne 0x41c494
call 0x3da3f6
test eax, eax
je 0x41c494
push edi
push dword [4]
mov ecx, eax
call 0x3da846
mov edi, eax
mov esi, edi
test edi, edi
jne 0x41c446
jmp 0x41c635
mov ecx, ebx
call 0x400b66
cmp dword [eax + 0xa0], 0
je 0x41c4c2
mov ecx, ebx
call 0x400b66
lea edx, [ebx + 0x6c]
mov ecx, eax
call fcn.00421416
jmp 0x41c4c4
xor eax, eax
mov esi, dword [ebx]
mov ecx, ebx
push eax
lea eax, [esp + 0x1b4]
mov dword [esp + 0x1b4], 0xfeefed
push eax
push 0
push 1
push 0
mov dword [esp + 0x1c8], 0xfeefed
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x200], 0xfeefed
mov dword [esp + 0x204], 0xfeefed
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], 0
mov dword [esp + 0x1f0], 0xfeefed
mov dword [esp + 0x1f4], 0xfeefed
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
call 0x400b66
push eax
lea eax, [esp + 0x204]
mov ecx, ebx
push eax
call dword [esi + 0x28]
push eax
push 0x65e308
push edi
mov ecx, ebx
call fcn.00473396
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], 0
push ecx
push 0
push 0
push eax
lea eax, [esp + 0x200]
mov ecx, ebx
push eax
call fcn.00468426
mov esi, eax
test byte [esi + 2], 1
jne 0x41c5c1
push 0
push 0
push dword [esp + 0x44]
mov ecx, ebx
push esi
call fcn.0046a686
mov esi, eax
push 0x30
lea ecx, [ebx + 0x24]
call fcn.0053ac26
mov edx, eax
mov eax, 0x1e
lea ecx, [edx + 0x18]
mov dword [edx + 4], 0xfeefed
mov word [edx], ax
mov eax, 0xfffe
mov dword [edx + 8], 0xfeefed
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov word [edx + 0x20], ax
mov eax, dword [ebx + 0x1d8]
mov dword [edx + 0x24], eax
mov eax, dword [ebx + 0x12c]
mov dword [edx + 0x14], eax
mov dword [ecx], 0
mov eax, dword [ebx + 0x10c]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x128]
mov dword [eax], edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x12c], edx
mov dword [edx + 0x28], esi
mov al, byte [esp + 0x3b]
mov byte [ebx + 0x90], al
mov ecx, dword [esp + 0xa60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa48]
xor ecx, esp
call 0x59f177
mov esp, ebp
pop ebp
ret