Function at 0x4191b8
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 0x41a56e
cmp dword [ebx + 0x1c], 0
jbe 0x4191e3
mov eax, dword [ebx + 0x18]
cmp byte [eax], 5
je 0x4191e7
xor edx, edx
jmp 0x4191ec
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.0048d768
add esp, 0xc
push 0xf0
push 0
lea edx, [esp + 0xf64]
push edx
call fcn.0048d768
add esp, 0xc
push 0x70
push 0
lea ecx, [esp + 0x12f8]
push ecx
call fcn.0048d768
add esp, 0xc
push 0x44
push 0
lea eax, [esp + 0x1230]
push eax
call fcn.0048d768
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 0x419438
mov dl, byte [eax]
test dl, dl
jne 0x419282
xor ecx, ecx
mov cl, byte [eax + 1]
inc dword [esp + ecx*4 + 0x15c]
jmp 0x41942b
cmp dl, 1
jne 0x41937c
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x20
jae 0x4192a6
xor ecx, ecx
mov cl, byte [edx + 0x49a3cc]
inc dword [esp + ecx*4 + 0x598]
jmp 0x4192b7
shr edx, 3
movzx edx, byte [edx + 0x49a3ec]
inc dword [esp + edx*4 + 0x598]
mov ecx, dword [eax + 8]
cmp ecx, 0x40
jae 0x4192c9
xor edx, edx
mov dl, byte [ecx + 0x49a428]
jmp 0x419321
cmp ecx, 0x800
jae 0x4192df
mov edx, ecx
shr edx, 5
movzx edx, byte [edx + 0x49a468]
jmp 0x419321
cmp ecx, 0x10000
jae 0x4192f5
mov edx, ecx
shr edx, 0xa
movzx edx, byte [edx + 0x49a4a8]
jmp 0x419321
cmp ecx, 0x20000
jae 0x419307
mov edx, ecx
shr edx, 0xf
add edx, 0x1e
jmp 0x419321
cmp ecx, 0x100000
jae 0x419319
mov edx, ecx
shr edx, 0x10
add edx, 0x20
jmp 0x419321
mov edx, ecx
shr edx, 0x12
add edx, 0x2c
inc dword [esp + edx*4 + 0xf5c]
cmp edx, 9
jbe 0x41936f
and ecx, 0xf
inc dword [esp + ecx*4 + 0x1228]
cmp esi, ecx
jne 0x41934c
cmp edi, 0x10
jge 0x41934c
inc edi
cmp edi, 1
jne 0x41936f
mov dword [esp + 4], eax
jmp 0x41936f
cmp edi, 0x10
jne 0x41936b
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 0x41942b
mov cl, byte [eax]
sub cl, 2
je 0x419399
dec cl
je 0x4193d4
dec cl
je 0x4193dd
sub cl, 3
je 0x419424
jmp 0x41942b
mov edx, dword [eax + 8]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x20
jae 0x4193b9
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0x49a524]
mov dword [esp + 0xc], edx
jmp 0x4193c7
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 0x41942b
inc dword [esp + 0x564]
jmp 0x41942b
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 0x41940c
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x49a3cc]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41942b
mov ecx, dword [esp + 0x14]
shr ecx, 3
xor edx, edx
mov dl, byte [ecx + 0x49a3ec]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x41942b
inc dword [esp + 0x560]
add eax, 0xc
cmp eax, dword [esp + 8]
jb 0x41926b
mov dword [esp + 0x55c], 1
lea edx, [esp + 0x15c]
mov ecx, 0x12b
mov eax, ebx
call fcn.0041a990
lea edx, [esp + 0xf5c]
mov ecx, 0x3c
mov eax, ebx
call fcn.0041a990
lea edx, [esp + 0x1228]
mov ecx, 0x11
mov eax, ebx
call fcn.0041a990
lea edx, [esp + 0x12f0]
mov ecx, 0x1c
mov eax, ebx
call fcn.0041a990
lea eax, [esp + 0xab0]
push eax
lea ecx, [esp + 0x1440]
lea edx, [esp + 0x160]
mov eax, 0x12b
call fcn.00418f40
lea edx, [esp + 0x1138]
mov eax, 0x3c
push edx
lea edx, [esp + 0xf60]
lea ecx, [esp + 0x156b]
call fcn.00418f40
lea ecx, [esp + 0x12ac]
mov eax, 0x11
push ecx
lea ecx, [esp + 0x15a7]
lea edx, [esp + 0x122c]
call fcn.00418f40
lea eax, [esp + 0x13cc]
push eax
lea ecx, [esp + 0x15b8]
lea edx, [esp + 0x12f4]
mov eax, 0x1c
call fcn.00418f40
mov byte [esp + 0x18], 0
cmp byte [esp], 0
jne 0x41952d
mov byte [esp + 0x18], 1
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041a57c
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 0x41a365
cmp byte [esi], 0
jne 0x419606
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 0x419585
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.0x419c23.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 0x4195d6
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.0x419c23.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x419c23.0
cmp byte [esi], 1
jne 0x419c16
xor ecx, ecx
mov cl, byte [esi + 2]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], 0x20
jae 0x41962c
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + 0x49a3cc]
jmp 0x41963a
mov eax, dword [esp + 0x30]
shr eax, 3
movzx ebp, byte [eax + 0x49a3ec]
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 0x419673
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 0x4196f3
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 0x4196cc
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 0x4196f3
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
mov al, byte [ebp + 0x49a40c]
test eax, eax
je 0x4197a2
mov ebp, eax
mov eax, dword [eax*4 + 0x49a378]
and eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp ebp, dword [ebx + 8]
jge 0x41972a
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x48]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x4197a2
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 0x41977b
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 0x4197a2
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 0x4197e6
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 0x419866
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 0x41983f
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 0x419866
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
cmp ebp, 9
mov al, byte [ebp + 0x49a4e8]
jbe 0x419b4a
mov ebp, dword [esp + 0x58]
and ebp, 0xf
cmp eax, 4
jbe 0x419949
mov edx, eax
sub edx, 4
mov dword [esp + 0x70], edx
mov eax, dword [eax*4 + 0x49a378]
and eax, dword [esp + 0x58]
shr eax, 4
mov dword [esp + 0x74], eax
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x70]
jle 0x4198c3
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 0x419949
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 0x41991c
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 0x419949
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
test edi, edi
jne 0x419b44
mov edi, dword [esi + 4]
cmp edi, 0x10
jne 0x419a4f
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 0x4199a5
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 0x419a49
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 0x419a19
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 0x419a49
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
dec edi
jmp case.0x419c23.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 0x419a97
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.0x419c23.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 0x419b0b
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.0x419c23.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x419c23.0
dec edi
jmp case.0x419c23.0
mov ebp, eax
mov eax, dword [eax*4 + 0x49a378]
and eax, dword [esp + 0x58]
mov dword [esp + 0xac], eax
cmp ebp, dword [ebx + 8]
jge 0x419b7a
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.0x419c23.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 0x419bdd
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.0x419c23.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x419c23.0
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 7
ja case.0x419c23.0
jmp dword [ecx*4 + 0x419c2a]
mov eax, dword [esi + 8]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc0], 0x20
jae 0x419c76
mov edx, dword [esp + 0xc0]
xor ecx, ecx
mov cl, byte [edx + 0x49a524]
mov dword [esp + 0xbc], ecx
jmp 0x419c8a
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 0x419ce0
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 0x419d84
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 0x419d54
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 0x419d84
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xbc]
xor eax, eax
mov al, byte [ecx + 0x49a544]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd8], 0
je case.0x419c23.0
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx*4 + 0x49a378]
and eax, dword [esp + 0xc0]
mov dword [esp + 0xe0], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0xdc]
jle 0x419dfc
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.0x419c23.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 0x419e70
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.0x419c23.0
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp case.0x419c23.0
xor edx, edx
mov dl, byte [esp + 0x153e]
mov ecx, dword [esp + 0xeb8]
mov eax, ebx
call fcn.0041347c
jmp case.0x419c23.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.0041347c
xor edx, edx
mov dl, byte [esi + 2]
mov dword [esp + 0xf8], edx
cmp dword [esp + 0xf8], 0x20
jae 0x419f22
mov ecx, dword [esp + 0xf8]
xor eax, eax
mov al, byte [ecx + 0x49a3cc]
mov dword [esp + 0xf4], eax
jmp 0x419f3b
mov edx, dword [esp + 0xf8]
shr edx, 3
xor ecx, ecx
mov cl, byte [edx + 0x49a3ec]
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.0041347c
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov al, byte [ecx + 0x49a40c]
mov dword [esp + 0xfc], eax
cmp dword [esp + 0xfc], 0
je case.0x419c23.0
mov edx, dword [esp + 0xfc]
mov eax, ebx
mov ecx, dword [edx*4 + 0x49a378]
mov edx, dword [esp + 0xfc]
and ecx, dword [esp + 0xf8]
call fcn.0041347c
jmp case.0x419c23.0
mov eax, ebx
call fcn.0041a93c
cmp dword [ebx + 0x1cc], 0
je 0x419fc8
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.0042cf7c
cmp byte [esp], 0
je case.0x419c23.0
cmp dword [ebx + 0x1c], 1
jbe case.0x419c23.0
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.0041a57c
mov byte [esp + 0x18], 1
mov byte [esp], 0
jmp case.0x419c23.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 0x41a040
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 0x41a0e4
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 0x41a0b4
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 0x41a0e4
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff4
cmp esi, ecx
jne 0x41a1d0
mov dword [esp + 0x114], 2
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x114]
jle 0x41a126
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 0x41a1c6
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 0x41a196
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 0x41a1c6
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov byte [esp + 0x18], 0
jmp 0x41a29a
mov dword [esp + 0x124], 2
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x124]
jle 0x41a200
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 0x41a29a
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 0x41a26a
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 0x41a29a
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.0041a93c
cmp dword [ebx + 0x1cc], 0
je case.0x419c23.0
xor edx, edx
mov eax, dword [ebx + 0x1cc]
call fcn.0042d0c0
jmp case.0x419c23.0
xor edx, edx
mov dl, byte [esp + 0x153d]
mov ecx, dword [esp + 0xeb4]
mov eax, ebx
call fcn.0041347c
xor ecx, ecx
mov cl, byte [esi + 2]
mov edx, 8
mov eax, ebx
call fcn.0041347c
mov edx, dword [esi + 8]
mov dword [esp + 0x134], edx
cmp dword [esp + 0x134], 6
jbe 0x41a334
cmp dword [esp + 0x134], 0x106
ja 0x41a321
mov ecx, dword [esp + 0x134]
sub ecx, 7
mov edx, 8
mov eax, ebx
call fcn.0041347c
jmp 0x41a334
mov ecx, dword [esp + 0x134]
mov edx, 0x10
mov eax, ebx
call fcn.0041347c
xor ebp, ebp
jmp 0x41a34f
lea eax, [ebp + ebp*2]
xor ecx, ecx
mov cl, byte [esi + eax*4 + 0xd]
mov edx, 8
mov eax, ebx
call fcn.0041347c
inc ebp
cmp ebp, dword [esp + 0x134]
jb 0x41a338
add esi, 0xc
cmp esi, dword [esp + 0x1c]
jb 0x41954b
cmp byte [esp + 0x18], 0
je 0x41a536
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 0x41a3b8
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 0x41a45c
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 0x41a42c
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 0x41a45c
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 0x41a48f
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 0x41a52f
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 0x41a4ff
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 0x41a52f
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00413508
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.0048d6f8
add esp, 0xc
cmp dword [ebx + 0x1cc], 0
je 0x41a56e
mov eax, dword [ebx + 0x1cc]
call fcn.0042ce54
add esp, 0x15d0
pop ebp
pop edi
pop esi
pop ebx
ret