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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffff004
mov ebx, eax
push eax
add esp, 0xfffffa30
cmp dword [ebx + 0x1c], 0
je 0x41e082
cmp dword [ebx + 0x1c], 0
jbe 0x41ccf7
mov eax, dword [ebx + 0x18]
cmp byte [eax], 5
je 0x41ccfb
xor edx, edx
jmp 0x41cd00
mov edx, 1
mov byte [esp], dl
mov cl, byte [esp]
mov byte [ebx + 0x24], cl
push 0x4ac
push 0
lea eax, [esp + 0x164]
push eax
call fcn.00497b00
add esp, 0xc
push 0xf0
push 0
lea edx, [esp + 0xf64]
push edx
call fcn.00497b00
add esp, 0xc
push 0x70
push 0
lea ecx, [esp + 0x12f8]
push ecx
call fcn.00497b00
add esp, 0xc
push 0x44
push 0
lea eax, [esp + 0x1230]
push eax
call fcn.00497b00
add esp, 0xc
xor esi, esi
xor edi, edi
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
shl edx, 2
lea edx, [edx + edx*2]
add edx, eax
mov dword [esp + 8], edx
cmp eax, dword [esp + 8]
jae 0x41cf4c
mov dl, byte [eax]
test dl, dl
jne 0x41cd96
xor ecx, ecx
mov cl, byte [eax + 1]
inc dword [esp + ecx*4 + 0x15c]
jmp 0x41cf3f
cmp dl, 1
jne 0x41ce90
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x20
jae 0x41cdba
xor ecx, ecx
mov cl, byte [edx + 0x4a4890]
inc dword [esp + ecx*4 + 0x598]
jmp 0x41cdcb
shr edx, 3
movzx edx, byte [edx + 0x4a48b0]
inc dword [esp + edx*4 + 0x598]
mov ecx, dword [eax + 8]
cmp ecx, 0x40
jae 0x41cddd
xor edx, edx
mov dl, byte [ecx + 0x4a48ec]
jmp 0x41ce35
cmp ecx, 0x800
jae 0x41cdf3
mov edx, ecx
shr edx, 5
movzx edx, byte [edx + 0x4a492c]
jmp 0x41ce35
cmp ecx, 0x10000
jae 0x41ce09
mov edx, ecx
shr edx, 0xa
movzx edx, byte [edx + 0x4a496c]
jmp 0x41ce35
cmp ecx, 0x20000
jae 0x41ce1b
mov edx, ecx
shr edx, 0xf
add edx, 0x1e
jmp 0x41ce35
cmp ecx, 0x100000
jae 0x41ce2d
mov edx, ecx
shr edx, 0x10
add edx, 0x20
jmp 0x41ce35
mov edx, ecx
shr edx, 0x12
add edx, 0x2c
inc dword [esp + edx*4 + 0xf5c]
cmp edx, 9
jbe 0x41ce83
and ecx, 0xf
inc dword [esp + ecx*4 + 0x1228]
cmp esi, ecx
jne 0x41ce60
cmp edi, 0x10
jge 0x41ce60
inc edi
cmp edi, 1
jne 0x41ce83
mov dword [esp + 4], eax
jmp 0x41ce83
cmp edi, 0x10
jne 0x41ce7f
sub dword [esp + esi*4 + 0x1228], 0x10
inc dword [esp + 0x1268]
mov esi, dword [esp + 4]
mov dword [esi + 4], 0x10
xor edi, edi
mov esi, ecx
mov byte [eax + 1], dl
xor edx, edx
mov dword [eax + 4], edx
jmp 0x41cf3f
mov cl, byte [eax]
sub cl, 2
je 0x41cead
dec cl
je 0x41cee8
dec cl
je 0x41cef1
sub cl, 3
je 0x41cf38
jmp 0x41cf3f
mov edx, dword [eax + 8]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x20
jae 0x41cecd
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0x4a49e8]
mov dword [esp + 0xc], edx
jmp 0x41cedb
mov ecx, dword [esp + 0x10]
shr ecx, 6
add ecx, 4
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0xc]
inc dword [esp + edx*4 + 0x578]
jmp 0x41cf3f
inc dword [esp + 0x564]
jmp 0x41cf3f
mov ecx, dword [eax + 8]
inc dword [esp + ecx*4 + 0x568]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], 0x20
jae 0x41cf20
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x4a4890]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41cf3f
mov ecx, dword [esp + 0x14]
shr ecx, 3
xor edx, edx
mov dl, byte [ecx + 0x4a48b0]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41cf3f
inc dword [esp + 0x560]
add eax, 0xc
cmp eax, dword [esp + 8]
jb 0x41cd7f
mov dword [esp + 0x55c], 1
lea edx, [esp + 0x15c]
mov ecx, 0x12b
mov eax, ebx
call fcn.0041e4a4
lea edx, [esp + 0xf5c]
mov ecx, 0x3c
mov eax, ebx
call fcn.0041e4a4
lea edx, [esp + 0x1228]
mov ecx, 0x11
mov eax, ebx
call fcn.0041e4a4
lea edx, [esp + 0x12f0]
mov ecx, 0x1c
mov eax, ebx
call fcn.0041e4a4
lea eax, [esp + 0xab0]
push eax
lea ecx, [esp + 0x1440]
lea edx, [esp + 0x160]
mov eax, 0x12b
call fcn.0041ca58
lea edx, [esp + 0x1138]
mov eax, 0x3c
push edx
lea edx, [esp + 0xf60]
lea ecx, [esp + 0x156b]
call fcn.0041ca58
lea ecx, [esp + 0x12ac]
mov eax, 0x11
push ecx
lea ecx, [esp + 0x15a7]
lea edx, [esp + 0x122c]
call fcn.0041ca58
lea eax, [esp + 0x13cc]
push eax
lea ecx, [esp + 0x15b8]
lea edx, [esp + 0x12f4]
mov eax, 0x1c
call fcn.0041ca58
mov byte [esp + 0x18], 0
cmp byte [esp], 0
jne 0x41d041
mov byte [esp + 0x18], 1
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041e090
xor edi, edi
mov esi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x1c]
shl eax, 2
lea eax, [eax + eax*2]
add eax, esi
mov dword [esp + 0x1c], eax
cmp esi, dword [esp + 0x1c]
jae 0x41de79
cmp byte [esi], 0
jne 0x41d11a
xor eax, eax
mov al, byte [esi + 1]
movzx ebp, byte [esp + eax + 0x143c]
mov eax, dword [esp + eax*4 + 0xab0]
mov dword [esp + 0x20], eax
cmp ebp, dword [ebx + 8]
jge 0x41d099
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x20]
shl edx, cl
or dword [ebx + 4], edx
jmp case.0x41d737.0
sub ebp, dword [ebx + 8]
mov eax, dword [esp + 0x20]
mov ecx, ebp
mov edx, 0x10
shr eax, cl
or eax, dword [ebx + 4]
sub edx, ebp
mov dword [esp + 0x24], eax
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x20]
mov ecx, edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x24]
shr eax, 8
mov dword [esp + 0x28], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x28]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d0ea
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x2c]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne case.0x41d737.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d737.0
cmp byte [esi], 1
jne 0x41d72a
xor ecx, ecx
mov cl, byte [esi + 2]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], 0x20
jae 0x41d140
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + 0x4a4890]
jmp 0x41d14e
mov eax, dword [esp + 0x30]
shr eax, 3
movzx ebp, byte [eax + 0x4a48b0]
xor eax, eax
mov al, byte [esp + ebp + 0x154b]
mov dword [esp + 0x34], eax
mov edx, dword [esp + ebp*4 + 0xeec]
mov dword [esp + 0x38], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x34]
jle 0x41d187
mov eax, dword [esp + 0x34]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x38]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41d207
mov eax, dword [ebx + 8]
sub dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x3c], edx
mov eax, 0x10
sub eax, dword [esp + 0x34]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x38]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x3c]
shr eax, 8
mov dword [esp + 0x40], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x40]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d1e0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x44], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x44]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d207
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
mov al, byte [ebp + 0x4a48d0]
test eax, eax
je 0x41d2b6
mov ebp, eax
mov eax, dword [eax*4 + 0x4a483c]
and eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp ebp, dword [ebx + 8]
jge 0x41d23e
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x48]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41d2b6
sub ebp, dword [ebx + 8]
mov eax, dword [esp + 0x48]
mov ecx, ebp
mov edx, 0x10
shr eax, cl
or eax, dword [ebx + 4]
sub edx, ebp
mov dword [esp + 0x4c], eax
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x48]
mov ecx, edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x4c]
shr eax, 8
mov dword [esp + 0x50], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x50]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d28f
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x54]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d2b6
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esi + 8]
mov dword [esp + 0x58], ecx
movzx ebp, byte [esi + 1]
xor eax, eax
mov al, byte [esp + ebp + 0x1567]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + ebp*4 + 0x1138]
mov dword [esp + 0x60], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x5c]
jle 0x41d2fa
mov eax, dword [esp + 0x5c]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x60]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41d37a
mov eax, dword [ebx + 8]
sub dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x64], edx
mov eax, 0x10
sub eax, dword [esp + 0x5c]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x60]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x64]
shr eax, 8
mov dword [esp + 0x68], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x68]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d353
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x6c], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x6c]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d37a
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
cmp ebp, 9
mov al, byte [ebp + 0x4a49ac]
jbe 0x41d65e
mov ebp, dword [esp + 0x58]
and ebp, 0xf
cmp eax, 4
jbe 0x41d45d
mov edx, eax
sub edx, 4
mov dword [esp + 0x70], edx
mov eax, dword [eax*4 + 0x4a483c]
and eax, dword [esp + 0x58]
shr eax, 4
mov dword [esp + 0x74], eax
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x70]
jle 0x41d3d7
mov eax, dword [esp + 0x70]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x74]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41d45d
mov eax, dword [ebx + 8]
sub dword [esp + 0x70], eax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x78], edx
mov eax, 0x10
sub eax, dword [esp + 0x70]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x74]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x78]
shr eax, 8
mov dword [esp + 0x7c], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x7c]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d430
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x80], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x80]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d45d
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
test edi, edi
jne 0x41d658
mov edi, dword [esi + 4]
cmp edi, 0x10
jne 0x41d563
xor eax, eax
mov al, byte [esp + 0x15b3]
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x12ec]
mov dword [esp + 0x88], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x84]
jle 0x41d4b9
mov eax, dword [esp + 0x84]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x88]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41d55d
mov eax, dword [ebx + 8]
sub dword [esp + 0x84], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x8c], edx
mov eax, 0x10
sub eax, dword [esp + 0x84]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x88]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x8c]
shr eax, 8
mov dword [esp + 0x90], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x90]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d52d
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x94], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x94]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d55d
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
dec edi
jmp case.0x41d737.0
xor ecx, ecx
mov cl, byte [esp + ebp + 0x15a3]
mov dword [esp + 0x98], ecx
mov eax, dword [esp + ebp*4 + 0x12ac]
mov dword [esp + 0x9c], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0x98]
jle 0x41d5ab
mov ecx, dword [esp + 0x98]
sub dword [ebx + 8], ecx
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x9c]
shl eax, cl
or dword [ebx + 4], eax
jmp case.0x41d737.0
mov edx, dword [ebx + 8]
sub dword [esp + 0x98], edx
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0xa0], eax
mov edx, 0x10
sub edx, dword [esp + 0x98]
mov dword [ebx + 8], edx
mov ecx, edx
mov eax, dword [esp + 0x9c]
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xa4], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0xa4]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d61f
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xa8], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0xa8]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne case.0x41d737.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d737.0
dec edi
jmp case.0x41d737.0
mov ebp, eax
mov eax, dword [eax*4 + 0x4a483c]
and eax, dword [esp + 0x58]
mov dword [esp + 0xac], eax
cmp ebp, dword [ebx + 8]
jge 0x41d68e
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0xac]
shl edx, cl
or dword [ebx + 4], edx
jmp case.0x41d737.0
sub ebp, dword [ebx + 8]
mov eax, dword [esp + 0xac]
mov ecx, ebp
mov edx, 0x10
shr eax, cl
or eax, dword [ebx + 4]
sub edx, ebp
mov dword [esp + 0xb0], eax
mov dword [ebx + 8], edx
mov eax, dword [esp + 0xac]
mov ecx, edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xb0]
shr eax, 8
mov dword [esp + 0xb4], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0xb4]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d6f1
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb8], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0xb8]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne case.0x41d737.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d737.0
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 7
ja case.0x41d737.0
jmp dword [ecx*4 + 0x41d73e]
mov eax, dword [esi + 8]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc0], 0x20
jae 0x41d78a
mov edx, dword [esp + 0xc0]
xor ecx, ecx
mov cl, byte [edx + 0x4a49e8]
mov dword [esp + 0xbc], ecx
jmp 0x41d79e
mov eax, dword [esp + 0xc0]
shr eax, 6
add eax, 4
mov dword [esp + 0xbc], eax
mov edx, dword [esp + 0xbc]
xor ecx, ecx
mov cl, byte [esp + edx + 0x1543]
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + eax*4 + 0xecc]
mov dword [esp + 0xc8], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0xc4]
jle 0x41d7f4
mov eax, dword [esp + 0xc4]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0xc8]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41d898
mov eax, dword [ebx + 8]
sub dword [esp + 0xc4], eax
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc8]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0xcc], edx
mov eax, 0x10
sub eax, dword [esp + 0xc4]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0xc8]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0xcc]
shr eax, 8
mov dword [esp + 0xd0], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0xd0]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d868
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xd4], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0xd4]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d898
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xbc]
xor eax, eax
mov al, byte [ecx + 0x4a4a08]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd8], 0
je case.0x41d737.0
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx*4 + 0x4a483c]
and eax, dword [esp + 0xc0]
mov dword [esp + 0xe0], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0xdc]
jle 0x41d910
mov ecx, dword [esp + 0xdc]
sub dword [ebx + 8], ecx
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0xe0]
shl eax, cl
or dword [ebx + 4], eax
jmp case.0x41d737.0
mov edx, dword [ebx + 8]
sub dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xe0]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0xe4], eax
mov edx, 0x10
sub edx, dword [esp + 0xdc]
mov dword [ebx + 8], edx
mov ecx, edx
mov eax, dword [esp + 0xe0]
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xe4]
shr eax, 8
mov dword [esp + 0xe8], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0xe8]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41d984
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xec], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0xec]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne case.0x41d737.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d737.0
xor edx, edx
mov dl, byte [esp + 0x153e]
mov ecx, dword [esp + 0xeb8]
mov eax, ebx
call fcn.004143d4
jmp case.0x41d737.0
mov eax, dword [esi + 8]
mov dword [esp + 0xf0], eax
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + edx*4 + 0xebc]
xor edx, edx
mov dl, byte [esp + eax + 0x153f]
mov eax, ebx
call fcn.004143d4
xor edx, edx
mov dl, byte [esi + 2]
mov dword [esp + 0xf8], edx
cmp dword [esp + 0xf8], 0x20
jae 0x41da36
mov ecx, dword [esp + 0xf8]
xor eax, eax
mov al, byte [ecx + 0x4a4890]
mov dword [esp + 0xf4], eax
jmp 0x41da4f
mov edx, dword [esp + 0xf8]
shr edx, 3
xor ecx, ecx
mov cl, byte [edx + 0x4a48b0]
mov dword [esp + 0xf4], ecx
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf4]
movzx edx, byte [esp + edx + 0x15b4]
mov ecx, dword [esp + eax*4 + 0x13cc]
mov eax, ebx
call fcn.004143d4
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov al, byte [ecx + 0x4a48d0]
mov dword [esp + 0xfc], eax
cmp dword [esp + 0xfc], 0
je case.0x41d737.0
mov edx, dword [esp + 0xfc]
mov eax, ebx
mov ecx, dword [edx*4 + 0x4a483c]
mov edx, dword [esp + 0xfc]
and ecx, dword [esp + 0xf8]
call fcn.004143d4
jmp case.0x41d737.0
mov eax, ebx
call fcn.0041e450
cmp dword [ebx + 0x1cc], 0
je 0x41dadc
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.00430e10
cmp byte [esp], 0
je case.0x41d737.0
cmp dword [ebx + 0x1c], 1
jbe case.0x41d737.0
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041e090
mov byte [esp + 0x18], 1
mov byte [esp], 0
jmp case.0x41d737.0
xor edx, edx
mov dl, byte [esp + 0x153c]
mov dword [esp + 0x100], edx
mov ecx, dword [esp + 0xeb0]
mov dword [esp + 0x104], ecx
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x100]
jle 0x41db54
mov edx, dword [esp + 0x100]
sub dword [ebx + 8], edx
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x104]
shl eax, cl
or dword [ebx + 4], eax
jmp 0x41dbf8
mov edx, dword [ebx + 8]
sub dword [esp + 0x100], edx
mov ecx, dword [esp + 0x100]
mov eax, dword [esp + 0x104]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0x108], eax
mov edx, 0x10
sub edx, dword [esp + 0x100]
mov dword [ebx + 8], edx
mov ecx, edx
mov eax, dword [esp + 0x104]
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x108]
shr eax, 8
mov dword [esp + 0x10c], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x10c]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41dbc8
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x110], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x110]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41dbf8
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff4
cmp esi, ecx
jne 0x41dce4
mov dword [esp + 0x114], 2
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x114]
jle 0x41dc3a
mov edx, dword [esp + 0x114]
sub dword [ebx + 8], edx
mov ecx, dword [ebx + 8]
mov eax, 1
shl eax, cl
or dword [ebx + 4], eax
jmp 0x41dcda
mov edx, dword [ebx + 8]
mov eax, 1
sub dword [esp + 0x114], edx
mov edx, 0x10
mov ecx, dword [esp + 0x114]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0x118], eax
mov eax, 1
sub edx, dword [esp + 0x114]
mov ecx, edx
mov dword [ebx + 8], edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x118]
shr eax, 8
mov dword [esp + 0x11c], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x11c]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41dcaa
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x120], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x120]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41dcda
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov byte [esp + 0x18], 0
jmp 0x41ddae
mov dword [esp + 0x124], 2
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x124]
jle 0x41dd14
mov eax, dword [esp + 0x124]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
xor edx, edx
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41ddae
mov eax, dword [ebx + 8]
xor edx, edx
sub dword [esp + 0x124], eax
mov eax, 0x10
mov ecx, dword [esp + 0x124]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x128], edx
xor edx, edx
sub eax, dword [esp + 0x124]
mov ecx, eax
mov dword [ebx + 8], eax
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x128]
shr eax, 8
mov dword [esp + 0x12c], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x12c]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41dd7e
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x130], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x130]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41ddae
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.0041e450
cmp dword [ebx + 0x1cc], 0
je case.0x41d737.0
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.00430f60
jmp case.0x41d737.0
xor edx, edx
mov dl, byte [esp + 0x153d]
mov ecx, dword [esp + 0xeb4]
mov eax, ebx
call fcn.004143d4
xor ecx, ecx
mov cl, byte [esi + 2]
mov edx, 8
mov eax, ebx
call fcn.004143d4
mov edx, dword [esi + 8]
mov dword [esp + 0x134], edx
cmp dword [esp + 0x134], 6
jbe 0x41de48
cmp dword [esp + 0x134], 0x106
ja 0x41de35
mov ecx, dword [esp + 0x134]
sub ecx, 7
mov edx, 8
mov eax, ebx
call fcn.004143d4
jmp 0x41de48
mov ecx, dword [esp + 0x134]
mov edx, 0x10
mov eax, ebx
call fcn.004143d4
xor ebp, ebp
jmp 0x41de63
lea eax, [ebp + ebp*2]
xor ecx, ecx
mov cl, byte [esi + eax*4 + 0xd]
mov edx, 8
mov eax, ebx
call fcn.004143d4
inc ebp
cmp ebp, dword [esp + 0x134]
jb 0x41de4c
add esi, 0xc
cmp esi, dword [esp + 0x1c]
jb 0x41d05f
cmp byte [esp + 0x18], 0
je 0x41e04a
xor edx, edx
mov dl, byte [esp + 0x153c]
mov dword [esp + 0x138], edx
mov ecx, dword [esp + 0xeb0]
mov dword [esp + 0x13c], ecx
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x138]
jle 0x41decc
mov edx, dword [esp + 0x138]
sub dword [ebx + 8], edx
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x13c]
shl eax, cl
or dword [ebx + 4], eax
jmp 0x41df70
mov edx, dword [ebx + 8]
sub dword [esp + 0x138], edx
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x13c]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0x140], eax
mov edx, 0x10
sub edx, dword [esp + 0x138]
mov dword [ebx + 8], edx
mov ecx, edx
mov eax, dword [esp + 0x13c]
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x140]
shr eax, 8
mov dword [esp + 0x144], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x144]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41df40
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x148], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x148]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41df70
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov dword [esp + 0x14c], 1
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x14c]
jle 0x41dfa3
mov eax, dword [esp + 0x14c]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, 1
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41e043
mov eax, dword [ebx + 8]
mov edx, 1
sub dword [esp + 0x14c], eax
mov eax, 0x10
mov ecx, dword [esp + 0x14c]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x150], edx
mov edx, 1
sub eax, dword [esp + 0x14c]
mov ecx, eax
mov dword [ebx + 8], eax
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x150]
shr eax, 8
mov dword [esp + 0x154], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x154]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41e013
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x158], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x158]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x41e043
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00414460
mov edx, dword [ebx + 0x1c]
xor ecx, ecx
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], ecx
push 0x194
lea eax, [esp + 0x1440]
push eax
lea edx, [ebx + 0x38]
push edx
call fcn.00497a90
add esp, 0xc
cmp dword [ebx + 0x1cc], 0
je 0x41e082
mov eax, dword [ebx + 0x1cc]
call fcn.00430ce8
add esp, 0x15d0
pop ebp
pop edi
pop esi
pop ebx
ret