Function at 0x41c33c
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 0x41d6f2
cmp dword [ebx + 0x1c], 0
jbe 0x41c367
mov eax, dword [ebx + 0x18]
cmp byte [eax], 5
je 0x41c36b
xor edx, edx
jmp 0x41c370
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.004365a0
add esp, 0xc
push 0xf0
push 0
lea edx, [esp + 0xf64]
push edx
call fcn.004365a0
add esp, 0xc
push 0x70
push 0
lea ecx, [esp + 0x12f8]
push ecx
call fcn.004365a0
add esp, 0xc
push 0x44
push 0
lea eax, [esp + 0x1230]
push eax
call fcn.004365a0
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 0x41c5bc
mov dl, byte [eax]
test dl, dl
jne 0x41c406
xor ecx, ecx
mov cl, byte [eax + 1]
inc dword [esp + ecx*4 + 0x15c]
jmp 0x41c5af
cmp dl, 1
jne 0x41c500
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x20
jae 0x41c42a
xor ecx, ecx
mov cl, byte [edx + 0x43fe0c]
inc dword [esp + ecx*4 + 0x598]
jmp 0x41c43b
shr edx, 3
movzx edx, byte [edx + 0x43fe2c]
inc dword [esp + edx*4 + 0x598]
mov ecx, dword [eax + 8]
cmp ecx, 0x40
jae 0x41c44d
xor edx, edx
mov dl, byte [ecx + 0x43fe68]
jmp 0x41c4a5
cmp ecx, 0x800
jae 0x41c463
mov edx, ecx
shr edx, 5
movzx edx, byte [edx + 0x43fea8]
jmp 0x41c4a5
cmp ecx, 0x10000
jae 0x41c479
mov edx, ecx
shr edx, 0xa
movzx edx, byte [edx + 0x43fee8]
jmp 0x41c4a5
cmp ecx, 0x20000
jae 0x41c48b
mov edx, ecx
shr edx, 0xf
add edx, 0x1e
jmp 0x41c4a5
cmp ecx, 0x100000
jae 0x41c49d
mov edx, ecx
shr edx, 0x10
add edx, 0x20
jmp 0x41c4a5
mov edx, ecx
shr edx, 0x12
add edx, 0x2c
inc dword [esp + edx*4 + 0xf5c]
cmp edx, 9
jbe 0x41c4f3
and ecx, 0xf
inc dword [esp + ecx*4 + 0x1228]
cmp esi, ecx
jne 0x41c4d0
cmp edi, 0x10
jge 0x41c4d0
inc edi
cmp edi, 1
jne 0x41c4f3
mov dword [esp + 4], eax
jmp 0x41c4f3
cmp edi, 0x10
jne 0x41c4ef
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 0x41c5af
mov cl, byte [eax]
sub cl, 2
je 0x41c51d
dec cl
je 0x41c558
dec cl
je 0x41c561
sub cl, 3
je 0x41c5a8
jmp 0x41c5af
mov edx, dword [eax + 8]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x20
jae 0x41c53d
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0x43ff64]
mov dword [esp + 0xc], edx
jmp 0x41c54b
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 0x41c5af
inc dword [esp + 0x564]
jmp 0x41c5af
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 0x41c590
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x43fe0c]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41c5af
mov ecx, dword [esp + 0x14]
shr ecx, 3
xor edx, edx
mov dl, byte [ecx + 0x43fe2c]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41c5af
inc dword [esp + 0x560]
add eax, 0xc
cmp eax, dword [esp + 8]
jb 0x41c3ef
mov dword [esp + 0x55c], 1
lea edx, [esp + 0x15c]
mov ecx, 0x12b
mov eax, ebx
call fcn.0041db14
lea edx, [esp + 0xf5c]
mov ecx, 0x3c
mov eax, ebx
call fcn.0041db14
lea edx, [esp + 0x1228]
mov ecx, 0x11
mov eax, ebx
call fcn.0041db14
lea edx, [esp + 0x12f0]
mov ecx, 0x1c
mov eax, ebx
call fcn.0041db14
lea eax, [esp + 0xab0]
push eax
lea ecx, [esp + 0x1440]
lea edx, [esp + 0x160]
mov eax, 0x12b
call fcn.0041c144
lea edx, [esp + 0x1138]
mov eax, 0x3c
push edx
lea edx, [esp + 0xf60]
lea ecx, [esp + 0x156b]
call fcn.0041c144
lea ecx, [esp + 0x12ac]
mov eax, 0x11
push ecx
lea ecx, [esp + 0x15a7]
lea edx, [esp + 0x122c]
call fcn.0041c144
lea eax, [esp + 0x13cc]
push eax
lea ecx, [esp + 0x15b8]
lea edx, [esp + 0x12f4]
mov eax, 0x1c
call fcn.0041c144
mov byte [esp + 0x18], 0
cmp byte [esp], 0
jne 0x41c6b1
mov byte [esp + 0x18], 1
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041d700
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 0x41d4e9
cmp byte [esi], 0
jne 0x41c78a
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 0x41c709
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.0x41cda7.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 0x41c75a
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.0x41cda7.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41cda7.0
cmp byte [esi], 1
jne 0x41cd9a
xor ecx, ecx
mov cl, byte [esi + 2]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], 0x20
jae 0x41c7b0
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + 0x43fe0c]
jmp 0x41c7be
mov eax, dword [esp + 0x30]
shr eax, 3
movzx ebp, byte [eax + 0x43fe2c]
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 0x41c7f7
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 0x41c877
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 0x41c850
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 0x41c877
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
mov al, byte [ebp + 0x43fe4c]
test eax, eax
je 0x41c926
mov ebp, eax
mov eax, dword [eax*4 + 0x43fdb8]
and eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp ebp, dword [ebx + 8]
jge 0x41c8ae
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x48]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41c926
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 0x41c8ff
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 0x41c926
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 0x41c96a
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 0x41c9ea
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 0x41c9c3
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 0x41c9ea
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
cmp ebp, 9
mov al, byte [ebp + 0x43ff28]
jbe 0x41ccce
mov ebp, dword [esp + 0x58]
and ebp, 0xf
cmp eax, 4
jbe 0x41cacd
mov edx, eax
sub edx, 4
mov dword [esp + 0x70], edx
mov eax, dword [eax*4 + 0x43fdb8]
and eax, dword [esp + 0x58]
shr eax, 4
mov dword [esp + 0x74], eax
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x70]
jle 0x41ca47
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 0x41cacd
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 0x41caa0
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 0x41cacd
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
test edi, edi
jne 0x41ccc8
mov edi, dword [esi + 4]
cmp edi, 0x10
jne 0x41cbd3
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 0x41cb29
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 0x41cbcd
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 0x41cb9d
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 0x41cbcd
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
dec edi
jmp case.0x41cda7.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 0x41cc1b
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.0x41cda7.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 0x41cc8f
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.0x41cda7.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41cda7.0
dec edi
jmp case.0x41cda7.0
mov ebp, eax
mov eax, dword [eax*4 + 0x43fdb8]
and eax, dword [esp + 0x58]
mov dword [esp + 0xac], eax
cmp ebp, dword [ebx + 8]
jge 0x41ccfe
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.0x41cda7.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 0x41cd61
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.0x41cda7.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41cda7.0
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 7
ja case.0x41cda7.0
jmp dword [ecx*4 + 0x41cdae]
mov eax, dword [esi + 8]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc0], 0x20
jae 0x41cdfa
mov edx, dword [esp + 0xc0]
xor ecx, ecx
mov cl, byte [edx + 0x43ff64]
mov dword [esp + 0xbc], ecx
jmp 0x41ce0e
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 0x41ce64
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 0x41cf08
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 0x41ced8
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 0x41cf08
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xbc]
xor eax, eax
mov al, byte [ecx + 0x43ff84]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd8], 0
je case.0x41cda7.0
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx*4 + 0x43fdb8]
and eax, dword [esp + 0xc0]
mov dword [esp + 0xe0], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0xdc]
jle 0x41cf80
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.0x41cda7.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 0x41cff4
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.0x41cda7.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41cda7.0
xor edx, edx
mov dl, byte [esp + 0x153e]
mov ecx, dword [esp + 0xeb8]
mov eax, ebx
call fcn.004167ac
jmp case.0x41cda7.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.004167ac
xor edx, edx
mov dl, byte [esi + 2]
mov dword [esp + 0xf8], edx
cmp dword [esp + 0xf8], 0x20
jae 0x41d0a6
mov ecx, dword [esp + 0xf8]
xor eax, eax
mov al, byte [ecx + 0x43fe0c]
mov dword [esp + 0xf4], eax
jmp 0x41d0bf
mov edx, dword [esp + 0xf8]
shr edx, 3
xor ecx, ecx
mov cl, byte [edx + 0x43fe2c]
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.004167ac
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov al, byte [ecx + 0x43fe4c]
mov dword [esp + 0xfc], eax
cmp dword [esp + 0xfc], 0
je case.0x41cda7.0
mov edx, dword [esp + 0xfc]
mov eax, ebx
mov ecx, dword [edx*4 + 0x43fdb8]
mov edx, dword [esp + 0xfc]
and ecx, dword [esp + 0xf8]
call fcn.004167ac
jmp case.0x41cda7.0
mov eax, ebx
call fcn.0041dac0
cmp dword [ebx + 0x1cc], 0
je 0x41d14c
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.0041de88
cmp byte [esp], 0
je case.0x41cda7.0
cmp dword [ebx + 0x1c], 1
jbe case.0x41cda7.0
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041d700
mov byte [esp + 0x18], 1
mov byte [esp], 0
jmp case.0x41cda7.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 0x41d1c4
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 0x41d268
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 0x41d238
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 0x41d268
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff4
cmp esi, ecx
jne 0x41d354
mov dword [esp + 0x114], 2
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x114]
jle 0x41d2aa
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 0x41d34a
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 0x41d31a
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 0x41d34a
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov byte [esp + 0x18], 0
jmp 0x41d41e
mov dword [esp + 0x124], 2
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x124]
jle 0x41d384
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 0x41d41e
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 0x41d3ee
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 0x41d41e
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.0041dac0
cmp dword [ebx + 0x1cc], 0
je case.0x41cda7.0
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.0041dfcc
jmp case.0x41cda7.0
xor edx, edx
mov dl, byte [esp + 0x153d]
mov ecx, dword [esp + 0xeb4]
mov eax, ebx
call fcn.004167ac
xor ecx, ecx
mov cl, byte [esi + 2]
mov edx, 8
mov eax, ebx
call fcn.004167ac
mov edx, dword [esi + 8]
mov dword [esp + 0x134], edx
cmp dword [esp + 0x134], 6
jbe 0x41d4b8
cmp dword [esp + 0x134], 0x106
ja 0x41d4a5
mov ecx, dword [esp + 0x134]
sub ecx, 7
mov edx, 8
mov eax, ebx
call fcn.004167ac
jmp 0x41d4b8
mov ecx, dword [esp + 0x134]
mov edx, 0x10
mov eax, ebx
call fcn.004167ac
xor ebp, ebp
jmp 0x41d4d3
lea eax, [ebp + ebp*2]
xor ecx, ecx
mov cl, byte [esi + eax*4 + 0xd]
mov edx, 8
mov eax, ebx
call fcn.004167ac
inc ebp
cmp ebp, dword [esp + 0x134]
jb 0x41d4bc
add esi, 0xc
cmp esi, dword [esp + 0x1c]
jb 0x41c6cf
cmp byte [esp + 0x18], 0
je 0x41d6ba
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 0x41d53c
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 0x41d5e0
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 0x41d5b0
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 0x41d5e0
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 0x41d613
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 0x41d6b3
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 0x41d683
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 0x41d6b3
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00416838
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.00436530
add esp, 0xc
cmp dword [ebx + 0x1cc], 0
je 0x41d6f2
mov eax, dword [ebx + 0x1cc]
call fcn.0041dd60
add esp, 0x15d0
pop ebp
pop edi
pop esi
pop ebx
ret