Function at 0x41c650
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 0x41da06
cmp dword [ebx + 0x1c], 0
jbe 0x41c67b
mov eax, dword [ebx + 0x18]
cmp byte [eax], 5
je 0x41c67f
xor edx, edx
jmp 0x41c684
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.00494dd8
add esp, 0xc
push 0xf0
push 0
lea edx, [esp + 0xf64]
push edx
call fcn.00494dd8
add esp, 0xc
push 0x70
push 0
lea ecx, [esp + 0x12f8]
push ecx
call fcn.00494dd8
add esp, 0xc
push 0x44
push 0
lea eax, [esp + 0x1230]
push eax
call fcn.00494dd8
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 0x41c8d0
mov dl, byte [eax]
test dl, dl
jne 0x41c71a
xor ecx, ecx
mov cl, byte [eax + 1]
inc dword [esp + ecx*4 + 0x15c]
jmp 0x41c8c3
cmp dl, 1
jne 0x41c814
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x20
jae 0x41c73e
xor ecx, ecx
mov cl, byte [edx + 0x4a2700]
inc dword [esp + ecx*4 + 0x598]
jmp 0x41c74f
shr edx, 3
movzx edx, byte [edx + 0x4a2720]
inc dword [esp + edx*4 + 0x598]
mov ecx, dword [eax + 8]
cmp ecx, 0x40
jae 0x41c761
xor edx, edx
mov dl, byte [ecx + 0x4a275c]
jmp 0x41c7b9
cmp ecx, 0x800
jae 0x41c777
mov edx, ecx
shr edx, 5
movzx edx, byte [edx + 0x4a279c]
jmp 0x41c7b9
cmp ecx, 0x10000
jae 0x41c78d
mov edx, ecx
shr edx, 0xa
movzx edx, byte [edx + 0x4a27dc]
jmp 0x41c7b9
cmp ecx, 0x20000
jae 0x41c79f
mov edx, ecx
shr edx, 0xf
add edx, 0x1e
jmp 0x41c7b9
cmp ecx, 0x100000
jae 0x41c7b1
mov edx, ecx
shr edx, 0x10
add edx, 0x20
jmp 0x41c7b9
mov edx, ecx
shr edx, 0x12
add edx, 0x2c
inc dword [esp + edx*4 + 0xf5c]
cmp edx, 9
jbe 0x41c807
and ecx, 0xf
inc dword [esp + ecx*4 + 0x1228]
cmp esi, ecx
jne 0x41c7e4
cmp edi, 0x10
jge 0x41c7e4
inc edi
cmp edi, 1
jne 0x41c807
mov dword [esp + 4], eax
jmp 0x41c807
cmp edi, 0x10
jne 0x41c803
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 0x41c8c3
mov cl, byte [eax]
sub cl, 2
je 0x41c831
dec cl
je 0x41c86c
dec cl
je 0x41c875
sub cl, 3
je 0x41c8bc
jmp 0x41c8c3
mov edx, dword [eax + 8]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x20
jae 0x41c851
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0x4a2858]
mov dword [esp + 0xc], edx
jmp 0x41c85f
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 0x41c8c3
inc dword [esp + 0x564]
jmp 0x41c8c3
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 0x41c8a4
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x4a2700]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41c8c3
mov ecx, dword [esp + 0x14]
shr ecx, 3
xor edx, edx
mov dl, byte [ecx + 0x4a2720]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41c8c3
inc dword [esp + 0x560]
add eax, 0xc
cmp eax, dword [esp + 8]
jb 0x41c703
mov dword [esp + 0x55c], 1
lea edx, [esp + 0x15c]
mov ecx, 0x12b
mov eax, ebx
call fcn.0041de28
lea edx, [esp + 0xf5c]
mov ecx, 0x3c
mov eax, ebx
call fcn.0041de28
lea edx, [esp + 0x1228]
mov ecx, 0x11
mov eax, ebx
call fcn.0041de28
lea edx, [esp + 0x12f0]
mov ecx, 0x1c
mov eax, ebx
call fcn.0041de28
lea eax, [esp + 0xab0]
push eax
lea ecx, [esp + 0x1440]
lea edx, [esp + 0x160]
mov eax, 0x12b
call fcn.0041c3d8
lea edx, [esp + 0x1138]
mov eax, 0x3c
push edx
lea edx, [esp + 0xf60]
lea ecx, [esp + 0x156b]
call fcn.0041c3d8
lea ecx, [esp + 0x12ac]
mov eax, 0x11
push ecx
lea ecx, [esp + 0x15a7]
lea edx, [esp + 0x122c]
call fcn.0041c3d8
lea eax, [esp + 0x13cc]
push eax
lea ecx, [esp + 0x15b8]
lea edx, [esp + 0x12f4]
mov eax, 0x1c
call fcn.0041c3d8
mov byte [esp + 0x18], 0
cmp byte [esp], 0
jne 0x41c9c5
mov byte [esp + 0x18], 1
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041da14
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 0x41d7fd
cmp byte [esi], 0
jne 0x41ca9e
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 0x41ca1d
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.0x41d0bb.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 0x41ca6e
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.0x41d0bb.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d0bb.0
cmp byte [esi], 1
jne 0x41d0ae
xor ecx, ecx
mov cl, byte [esi + 2]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], 0x20
jae 0x41cac4
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + 0x4a2700]
jmp 0x41cad2
mov eax, dword [esp + 0x30]
shr eax, 3
movzx ebp, byte [eax + 0x4a2720]
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 0x41cb0b
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 0x41cb8b
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 0x41cb64
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 0x41cb8b
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
mov al, byte [ebp + 0x4a2740]
test eax, eax
je 0x41cc3a
mov ebp, eax
mov eax, dword [eax*4 + 0x4a26ac]
and eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp ebp, dword [ebx + 8]
jge 0x41cbc2
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x48]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41cc3a
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 0x41cc13
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 0x41cc3a
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 0x41cc7e
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 0x41ccfe
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 0x41ccd7
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 0x41ccfe
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
cmp ebp, 9
mov al, byte [ebp + 0x4a281c]
jbe 0x41cfe2
mov ebp, dword [esp + 0x58]
and ebp, 0xf
cmp eax, 4
jbe 0x41cde1
mov edx, eax
sub edx, 4
mov dword [esp + 0x70], edx
mov eax, dword [eax*4 + 0x4a26ac]
and eax, dword [esp + 0x58]
shr eax, 4
mov dword [esp + 0x74], eax
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x70]
jle 0x41cd5b
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 0x41cde1
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 0x41cdb4
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 0x41cde1
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
test edi, edi
jne 0x41cfdc
mov edi, dword [esi + 4]
cmp edi, 0x10
jne 0x41cee7
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 0x41ce3d
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 0x41cee1
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 0x41ceb1
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 0x41cee1
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
dec edi
jmp case.0x41d0bb.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 0x41cf2f
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.0x41d0bb.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 0x41cfa3
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.0x41d0bb.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d0bb.0
dec edi
jmp case.0x41d0bb.0
mov ebp, eax
mov eax, dword [eax*4 + 0x4a26ac]
and eax, dword [esp + 0x58]
mov dword [esp + 0xac], eax
cmp ebp, dword [ebx + 8]
jge 0x41d012
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.0x41d0bb.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 0x41d075
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.0x41d0bb.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d0bb.0
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 7
ja case.0x41d0bb.0
jmp dword [ecx*4 + 0x41d0c2]
mov eax, dword [esi + 8]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc0], 0x20
jae 0x41d10e
mov edx, dword [esp + 0xc0]
xor ecx, ecx
mov cl, byte [edx + 0x4a2858]
mov dword [esp + 0xbc], ecx
jmp 0x41d122
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 0x41d178
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 0x41d21c
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 0x41d1ec
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 0x41d21c
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xbc]
xor eax, eax
mov al, byte [ecx + 0x4a2878]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd8], 0
je case.0x41d0bb.0
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx*4 + 0x4a26ac]
and eax, dword [esp + 0xc0]
mov dword [esp + 0xe0], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0xdc]
jle 0x41d294
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.0x41d0bb.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 0x41d308
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.0x41d0bb.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41d0bb.0
xor edx, edx
mov dl, byte [esp + 0x153e]
mov ecx, dword [esp + 0xeb8]
mov eax, ebx
call fcn.00413e24
jmp case.0x41d0bb.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.00413e24
xor edx, edx
mov dl, byte [esi + 2]
mov dword [esp + 0xf8], edx
cmp dword [esp + 0xf8], 0x20
jae 0x41d3ba
mov ecx, dword [esp + 0xf8]
xor eax, eax
mov al, byte [ecx + 0x4a2700]
mov dword [esp + 0xf4], eax
jmp 0x41d3d3
mov edx, dword [esp + 0xf8]
shr edx, 3
xor ecx, ecx
mov cl, byte [edx + 0x4a2720]
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.00413e24
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov al, byte [ecx + 0x4a2740]
mov dword [esp + 0xfc], eax
cmp dword [esp + 0xfc], 0
je case.0x41d0bb.0
mov edx, dword [esp + 0xfc]
mov eax, ebx
mov ecx, dword [edx*4 + 0x4a26ac]
mov edx, dword [esp + 0xfc]
and ecx, dword [esp + 0xf8]
call fcn.00413e24
jmp case.0x41d0bb.0
mov eax, ebx
call fcn.0041ddd4
cmp dword [ebx + 0x1cc], 0
je 0x41d460
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.004307b8
cmp byte [esp], 0
je case.0x41d0bb.0
cmp dword [ebx + 0x1c], 1
jbe case.0x41d0bb.0
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041da14
mov byte [esp + 0x18], 1
mov byte [esp], 0
jmp case.0x41d0bb.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 0x41d4d8
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 0x41d57c
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 0x41d54c
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 0x41d57c
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff4
cmp esi, ecx
jne 0x41d668
mov dword [esp + 0x114], 2
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x114]
jle 0x41d5be
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 0x41d65e
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 0x41d62e
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 0x41d65e
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov byte [esp + 0x18], 0
jmp 0x41d732
mov dword [esp + 0x124], 2
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x124]
jle 0x41d698
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 0x41d732
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 0x41d702
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 0x41d732
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.0041ddd4
cmp dword [ebx + 0x1cc], 0
je case.0x41d0bb.0
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.00430908
jmp case.0x41d0bb.0
xor edx, edx
mov dl, byte [esp + 0x153d]
mov ecx, dword [esp + 0xeb4]
mov eax, ebx
call fcn.00413e24
xor ecx, ecx
mov cl, byte [esi + 2]
mov edx, 8
mov eax, ebx
call fcn.00413e24
mov edx, dword [esi + 8]
mov dword [esp + 0x134], edx
cmp dword [esp + 0x134], 6
jbe 0x41d7cc
cmp dword [esp + 0x134], 0x106
ja 0x41d7b9
mov ecx, dword [esp + 0x134]
sub ecx, 7
mov edx, 8
mov eax, ebx
call fcn.00413e24
jmp 0x41d7cc
mov ecx, dword [esp + 0x134]
mov edx, 0x10
mov eax, ebx
call fcn.00413e24
xor ebp, ebp
jmp 0x41d7e7
lea eax, [ebp + ebp*2]
xor ecx, ecx
mov cl, byte [esi + eax*4 + 0xd]
mov edx, 8
mov eax, ebx
call fcn.00413e24
inc ebp
cmp ebp, dword [esp + 0x134]
jb 0x41d7d0
add esi, 0xc
cmp esi, dword [esp + 0x1c]
jb 0x41c9e3
cmp byte [esp + 0x18], 0
je 0x41d9ce
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 0x41d850
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 0x41d8f4
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 0x41d8c4
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 0x41d8f4
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 0x41d927
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 0x41d9c7
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 0x41d997
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 0x41d9c7
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00413eb0
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.00494d68
add esp, 0xc
cmp dword [ebx + 0x1cc], 0
je 0x41da06
mov eax, dword [ebx + 0x1cc]
call fcn.00430690
add esp, 0x15d0
pop ebp
pop edi
pop esi
pop ebx
ret