Function at 0x417bb0
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 0x418f66
cmp dword [ebx + 0x1c], 0
jbe 0x417bdb
mov eax, dword [ebx + 0x18]
cmp byte [eax], 5
je 0x417bdf
xor edx, edx
jmp 0x417be4
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.00482880
add esp, 0xc
push 0xf0
push 0
lea edx, [esp + 0xf64]
push edx
call fcn.00482880
add esp, 0xc
push 0x70
push 0
lea ecx, [esp + 0x12f8]
push ecx
call fcn.00482880
add esp, 0xc
push 0x44
push 0
lea eax, [esp + 0x1230]
push eax
call fcn.00482880
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 0x417e30
mov dl, byte [eax]
test dl, dl
jne 0x417c7a
xor ecx, ecx
mov cl, byte [eax + 1]
inc dword [esp + ecx*4 + 0x15c]
jmp 0x417e23
cmp dl, 1
jne 0x417d74
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x20
jae 0x417c9e
xor ecx, ecx
mov cl, byte [edx + 0x493470]
inc dword [esp + ecx*4 + 0x598]
jmp 0x417caf
shr edx, 3
movzx edx, byte [edx + 0x493490]
inc dword [esp + edx*4 + 0x598]
mov ecx, dword [eax + 8]
cmp ecx, 0x40
jae 0x417cc1
xor edx, edx
mov dl, byte [ecx + 0x4934cc]
jmp 0x417d19
cmp ecx, 0x800
jae 0x417cd7
mov edx, ecx
shr edx, 5
movzx edx, byte [edx + 0x49350c]
jmp 0x417d19
cmp ecx, 0x10000
jae 0x417ced
mov edx, ecx
shr edx, 0xa
movzx edx, byte [edx + 0x49354c]
jmp 0x417d19
cmp ecx, 0x20000
jae 0x417cff
mov edx, ecx
shr edx, 0xf
add edx, 0x1e
jmp 0x417d19
cmp ecx, 0x100000
jae 0x417d11
mov edx, ecx
shr edx, 0x10
add edx, 0x20
jmp 0x417d19
mov edx, ecx
shr edx, 0x12
add edx, 0x2c
inc dword [esp + edx*4 + 0xf5c]
cmp edx, 9
jbe 0x417d67
and ecx, 0xf
inc dword [esp + ecx*4 + 0x1228]
cmp esi, ecx
jne 0x417d44
cmp edi, 0x10
jge 0x417d44
inc edi
cmp edi, 1
jne 0x417d67
mov dword [esp + 4], eax
jmp 0x417d67
cmp edi, 0x10
jne 0x417d63
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 0x417e23
mov cl, byte [eax]
sub cl, 2
je 0x417d91
dec cl
je 0x417dcc
dec cl
je 0x417dd5
sub cl, 3
je 0x417e1c
jmp 0x417e23
mov edx, dword [eax + 8]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x20
jae 0x417db1
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0x4935c8]
mov dword [esp + 0xc], edx
jmp 0x417dbf
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 0x417e23
inc dword [esp + 0x564]
jmp 0x417e23
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 0x417e04
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x493470]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x417e23
mov ecx, dword [esp + 0x14]
shr ecx, 3
xor edx, edx
mov dl, byte [ecx + 0x493490]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x417e23
inc dword [esp + 0x560]
add eax, 0xc
cmp eax, dword [esp + 8]
jb 0x417c63
mov dword [esp + 0x55c], 1
lea edx, [esp + 0x15c]
mov ecx, 0x12b
mov eax, ebx
call fcn.00419388
lea edx, [esp + 0xf5c]
mov ecx, 0x3c
mov eax, ebx
call fcn.00419388
lea edx, [esp + 0x1228]
mov ecx, 0x11
mov eax, ebx
call fcn.00419388
lea edx, [esp + 0x12f0]
mov ecx, 0x1c
mov eax, ebx
call fcn.00419388
lea eax, [esp + 0xab0]
push eax
lea ecx, [esp + 0x1440]
lea edx, [esp + 0x160]
mov eax, 0x12b
call fcn.00417938
lea edx, [esp + 0x1138]
mov eax, 0x3c
push edx
lea edx, [esp + 0xf60]
lea ecx, [esp + 0x156b]
call fcn.00417938
lea ecx, [esp + 0x12ac]
mov eax, 0x11
push ecx
lea ecx, [esp + 0x15a7]
lea edx, [esp + 0x122c]
call fcn.00417938
lea eax, [esp + 0x13cc]
push eax
lea ecx, [esp + 0x15b8]
lea edx, [esp + 0x12f4]
mov eax, 0x1c
call fcn.00417938
mov byte [esp + 0x18], 0
cmp byte [esp], 0
jne 0x417f25
mov byte [esp + 0x18], 1
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.00418f74
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 0x418d5d
cmp byte [esi], 0
jne 0x417ffe
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 0x417f7d
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.0x41861b.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 0x417fce
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.0x41861b.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41861b.0
cmp byte [esi], 1
jne 0x41860e
xor ecx, ecx
mov cl, byte [esi + 2]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], 0x20
jae 0x418024
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + 0x493470]
jmp 0x418032
mov eax, dword [esp + 0x30]
shr eax, 3
movzx ebp, byte [eax + 0x493490]
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 0x41806b
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 0x4180eb
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 0x4180c4
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 0x4180eb
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
mov al, byte [ebp + 0x4934b0]
test eax, eax
je 0x41819a
mov ebp, eax
mov eax, dword [eax*4 + 0x49341c]
and eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp ebp, dword [ebx + 8]
jge 0x418122
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x48]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x41819a
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 0x418173
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 0x41819a
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 0x4181de
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 0x41825e
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 0x418237
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 0x41825e
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
cmp ebp, 9
mov al, byte [ebp + 0x49358c]
jbe 0x418542
mov ebp, dword [esp + 0x58]
and ebp, 0xf
cmp eax, 4
jbe 0x418341
mov edx, eax
sub edx, 4
mov dword [esp + 0x70], edx
mov eax, dword [eax*4 + 0x49341c]
and eax, dword [esp + 0x58]
shr eax, 4
mov dword [esp + 0x74], eax
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x70]
jle 0x4182bb
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 0x418341
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 0x418314
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 0x418341
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
test edi, edi
jne 0x41853c
mov edi, dword [esi + 4]
cmp edi, 0x10
jne 0x418447
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 0x41839d
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 0x418441
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 0x418411
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 0x418441
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
dec edi
jmp case.0x41861b.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 0x41848f
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.0x41861b.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 0x418503
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.0x41861b.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41861b.0
dec edi
jmp case.0x41861b.0
mov ebp, eax
mov eax, dword [eax*4 + 0x49341c]
and eax, dword [esp + 0x58]
mov dword [esp + 0xac], eax
cmp ebp, dword [ebx + 8]
jge 0x418572
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.0x41861b.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 0x4185d5
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.0x41861b.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41861b.0
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 7
ja case.0x41861b.0
jmp dword [ecx*4 + 0x418622]
mov eax, dword [esi + 8]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc0], 0x20
jae 0x41866e
mov edx, dword [esp + 0xc0]
xor ecx, ecx
mov cl, byte [edx + 0x4935c8]
mov dword [esp + 0xbc], ecx
jmp 0x418682
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 0x4186d8
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 0x41877c
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 0x41874c
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 0x41877c
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xbc]
xor eax, eax
mov al, byte [ecx + 0x4935e8]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd8], 0
je case.0x41861b.0
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx*4 + 0x49341c]
and eax, dword [esp + 0xc0]
mov dword [esp + 0xe0], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0xdc]
jle 0x4187f4
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.0x41861b.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 0x418868
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.0x41861b.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x41861b.0
xor edx, edx
mov dl, byte [esp + 0x153e]
mov ecx, dword [esp + 0xeb8]
mov eax, ebx
call fcn.004123a8
jmp case.0x41861b.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.004123a8
xor edx, edx
mov dl, byte [esi + 2]
mov dword [esp + 0xf8], edx
cmp dword [esp + 0xf8], 0x20
jae 0x41891a
mov ecx, dword [esp + 0xf8]
xor eax, eax
mov al, byte [ecx + 0x493470]
mov dword [esp + 0xf4], eax
jmp 0x418933
mov edx, dword [esp + 0xf8]
shr edx, 3
xor ecx, ecx
mov cl, byte [edx + 0x493490]
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.004123a8
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov al, byte [ecx + 0x4934b0]
mov dword [esp + 0xfc], eax
cmp dword [esp + 0xfc], 0
je case.0x41861b.0
mov edx, dword [esp + 0xfc]
mov eax, ebx
mov ecx, dword [edx*4 + 0x49341c]
mov edx, dword [esp + 0xfc]
and ecx, dword [esp + 0xf8]
call fcn.004123a8
jmp case.0x41861b.0
mov eax, ebx
call fcn.00419334
cmp dword [ebx + 0x1cc], 0
je 0x4189c0
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.0042af08
cmp byte [esp], 0
je case.0x41861b.0
cmp dword [ebx + 0x1c], 1
jbe case.0x41861b.0
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.00418f74
mov byte [esp + 0x18], 1
mov byte [esp], 0
jmp case.0x41861b.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 0x418a38
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 0x418adc
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 0x418aac
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 0x418adc
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff4
cmp esi, ecx
jne 0x418bc8
mov dword [esp + 0x114], 2
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x114]
jle 0x418b1e
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 0x418bbe
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 0x418b8e
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 0x418bbe
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov byte [esp + 0x18], 0
jmp 0x418c92
mov dword [esp + 0x124], 2
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x124]
jle 0x418bf8
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 0x418c92
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 0x418c62
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 0x418c92
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00419334
cmp dword [ebx + 0x1cc], 0
je case.0x41861b.0
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.0042b04c
jmp case.0x41861b.0
xor edx, edx
mov dl, byte [esp + 0x153d]
mov ecx, dword [esp + 0xeb4]
mov eax, ebx
call fcn.004123a8
xor ecx, ecx
mov cl, byte [esi + 2]
mov edx, 8
mov eax, ebx
call fcn.004123a8
mov edx, dword [esi + 8]
mov dword [esp + 0x134], edx
cmp dword [esp + 0x134], 6
jbe 0x418d2c
cmp dword [esp + 0x134], 0x106
ja 0x418d19
mov ecx, dword [esp + 0x134]
sub ecx, 7
mov edx, 8
mov eax, ebx
call fcn.004123a8
jmp 0x418d2c
mov ecx, dword [esp + 0x134]
mov edx, 0x10
mov eax, ebx
call fcn.004123a8
xor ebp, ebp
jmp 0x418d47
lea eax, [ebp + ebp*2]
xor ecx, ecx
mov cl, byte [esi + eax*4 + 0xd]
mov edx, 8
mov eax, ebx
call fcn.004123a8
inc ebp
cmp ebp, dword [esp + 0x134]
jb 0x418d30
add esi, 0xc
cmp esi, dword [esp + 0x1c]
jb 0x417f43
cmp byte [esp + 0x18], 0
je 0x418f2e
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 0x418db0
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 0x418e54
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 0x418e24
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 0x418e54
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 0x418e87
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 0x418f27
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 0x418ef7
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 0x418f27
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00412434
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.00482810
add esp, 0xc
cmp dword [ebx + 0x1cc], 0
je 0x418f66
mov eax, dword [ebx + 0x1cc]
call fcn.0042ade0
add esp, 0x15d0
pop ebp
pop edi
pop esi
pop ebx
ret