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

Disassembly:
mov eax, 0x1808
call fcn.00414f60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1818]
test esi, esi
push edi
mov dword [esp + 0x20], 0
je 0x41211a
mov eax, dword [esi + 0x10]
test eax, eax
je 0x41211a
mov edx, dword [esp + 0x1824]
test edx, edx
je 0x41211a
mov eax, dword [esp + 0x1820]
test eax, eax
je 0x41211a
mov ebp, dword [edx]
test ebp, ebp
je 0x41211a
mov edi, dword [edx + 4]
test edi, edi
jbe 0x41211a
mov ecx, dword [eax]
test ecx, ecx
je 0x41211a
mov ebx, dword [eax + 4]
test ebx, ebx
jbe 0x41211a
mov ebx, dword [esp + 0x1828]
test ebx, ebx
je 0x410c7a
mov eax, dword [esi + 0xc]
cmp ebx, eax
jle 0x410c86
mov eax, dword [esi + 0xc]
mov ebx, eax
mov dword [esp + 0x1828], ebx
cmp dword [esi + 8], ebx
jg 0x4120fb
cmp ebx, eax
jg 0x4120fb
mov edx, dword [esi + 0x74]
test edx, edx
jbe 0x410cc9
cmp dword [esi + 0x58], ebx
jle 0x410cc9
mov ecx, dword [esp + 0x1820]
mov edx, dword [esp + 0x1824]
xor eax, eax
pop edi
mov dword [ecx + 4], eax
pop esi
mov dword [edx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x1808
ret
mov ebx, dword [esi + 0x3c]
mov eax, esi
sub eax, ebx
add edi, ebp
sub eax, 0x114
lea ebx, [esp + 0x98]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1820]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esp + 0x24], esi
add eax, ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x64]
test eax, eax
mov dword [esp + 0x98], esi
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xc0], ecx
jbe 0x410d63
mov ecx, dword [esi + 0x68]
mov dword [esp + 0xac], eax
cmp ecx, 0xffffffff
je 0x410d55
mov dword [esp + 0xcc], ebp
add ebp, eax
mov dword [esp + 0x10], ebp
jmp 0x410d7a
mov ecx, dword [esi + 0x5c]
add ecx, ebp
mov dword [esp + 0xcc], ecx
jmp 0x410d7a
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xcc], eax
test edx, edx
jbe 0x410f33
mov ecx, dword [esi + 0x6c]
add ecx, ebp
sub edi, ecx
cmp edi, edx
jl 0x410ef0
mov eax, edx
sub eax, 2
je 0x410ebc
sub eax, 2
je 0x410e95
sub eax, 4
je 0x410db3
xor eax, eax
mov al, byte [ecx]
jmp 0x410eca
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
mov ecx, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
xor esi, esi
and edi, 0xff0000
call fcn.004152b0
or esi, eax
or edi, edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.004152b0
mov esi, dword [esp + 0x44]
xor ecx, ecx
mov edi, esi
or eax, ecx
and edi, 0xff00
mov ecx, 0x10
or edx, edi
call fcn.004152b0
mov edi, esi
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.004152b0
mov edi, dword [esp + 0x40]
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.00415290
xor ecx, ecx
and edi, 0xff00
or edx, ecx
or eax, edi
mov ecx, 0x10
call fcn.00415290
mov ecx, dword [esp + 0x40]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.00415290
mov ecx, dword [esp + 0x40]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.00415290
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x181c]
or ecx, eax
mov eax, dword [esp + 0x30]
or eax, edx
mov dword [esp + 0x68], eax
jmp 0x410ed1
mov ecx, dword [ecx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x410eca
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov dword [esp + 0x68], edx
xor edx, edx
mov eax, ecx
cmp ecx, edx
mov dword [esp + 0xb8], eax
jne 0x410f00
mov eax, dword [esp + 0x1828]
mov dword [esp + 0xb8], eax
jmp 0x410f00
mov eax, dword [esp + 0x1828]
xor edx, edx
mov dword [esp + 0xb8], eax
cmp dword [esi + 8], eax
jg 0x410f0f
cmp eax, dword [esi + 0xc]
jg 0x410f0f
cmp eax, dword [esi + 0x58]
jge 0x410f43
mov eax, dword [esp + 0x1820]
mov ecx, dword [esp + 0x1824]
pop edi
pop esi
mov dword [eax + 4], edx
pop ebp
mov dword [ecx + 4], edx
mov eax, 0x82010470
pop ebx
add esp, 0x1808
ret
mov edx, dword [esp + 0x1828]
mov dword [esp + 0xb8], edx
xor edx, edx
mov eax, 1
mov dword [esp + 0xbc], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x2c], edx
xor edi, edi
cmp dword [esp + 0x2c], edi
je 0x411145
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x2c], edi
cmp eax, edi
jbe 0x4110d6
sub eax, 2
je 0x4110a9
sub eax, 2
je 0x411081
sub eax, 4
je 0x410fa5
mov eax, dword [ebx + 0x34]
xor ecx, ecx
mov cl, byte [eax]
mov eax, ecx
jmp 0x4110ba
mov edx, dword [ebx + 0x34]
mov ecx, 0x10
xor esi, esi
mov edi, dword [edx]
mov eax, edi
mov edx, dword [edx + 4]
mov ebp, edx
mov dword [esp + 0x94], edx
and ebp, 0xff0000
call fcn.004152b0
or esi, eax
or ebp, edx
mov ecx, 0x10
mov eax, esi
mov edx, ebp
call fcn.004152b0
mov esi, dword [esp + 0x94]
xor ecx, ecx
mov ebp, esi
or eax, ecx
and ebp, 0xff00
mov ecx, 0x10
or edx, ebp
call fcn.004152b0
mov ebp, esi
xor ecx, ecx
and ebp, 0xff
or eax, ecx
or edx, ebp
mov ecx, 8
call fcn.004152b0
mov dword [esp + 0x80], eax
mov ebp, edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.00415290
mov ecx, edi
xor esi, esi
and ecx, 0xff00
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.00415290
mov ecx, edi
or edx, esi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.00415290
xor ecx, ecx
and edi, 0xff000000
or edx, ecx
or eax, edi
mov ecx, 8
call fcn.00415290
mov ecx, dword [esp + 0x80]
or ebp, edx
or ecx, eax
mov dword [esp + 0x3c], ebp
xor edi, edi
jmp 0x4110c1
mov edx, dword [ebx + 0x34]
mov ecx, dword [edx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
jmp 0x4110b8
mov ecx, dword [ebx + 0x34]
xor eax, eax
xor edx, edx
mov ax, word [ecx]
mov dh, al
shr eax, 8
or eax, edx
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
mov ebp, dword [ebx + 0x30]
mov eax, dword [esp + 0x48]
add ebp, ecx
cmp ebp, eax
mov dword [esp + 0x10], ebp
ja 0x41201e
cmp dword [ebx + 0xc], edi
jle 0x411101
cmp dword [ebx + 0x14], edi
jbe 0x411101
cmp dword [ebx + 0x18], edi
jge 0x4110f6
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x34], ebp
sub ebp, eax
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x30], ebp
jmp 0x411101
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x30], ebp
add eax, ebp
mov dword [ebx + 0x34], eax
cmp dword [esp + 0x34], 1
jle 0x411145
mov eax, dword [ebx + 4]
test byte [eax + 0x44], 4
je 0x41112b
mov ecx, dword [eax + 0x18]
mov eax, dword [ebx - 0x98]
mov esi, dword [esp + 0x24]
add eax, ecx
mov dword [ebx - 0x98], eax
mov dword [ebx + 0x24], edi
jmp 0x411149
mov esi, dword [esp + 0x24]
mov eax, dword [ebx - 0x98]
mov edx, dword [esi + 0x1c]
add eax, edx
mov dword [ebx - 0x98], eax
mov dword [ebx + 0x24], edi
jmp 0x411149
mov esi, dword [esp + 0x24]
cmp dword [ebx + 0xc], edi
jg 0x4111ad
mov eax, dword [esp + 0x34]
sub ebx, 0xbc
dec eax
mov dword [esp + 0x50], ebx
cmp eax, edi
mov dword [esp + 0x34], eax
jle 0x41205c
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
cmp dword [eax + 0x10], edi
je 0x411d39
mov esi, dword [ebx + 0x10]
mov edx, dword [eax + 0x2c]
inc esi
mov ecx, esi
mov dword [ebx + 0x10], esi
cmp ecx, edx
jl 0x41200e
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x28]
dec ecx
add eax, edx
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], eax
jmp 0x41200e
mov ecx, dword [ebx + 0x10]
lea eax, [ecx + ecx*4]
lea edx, [eax + eax*8]
mov al, byte [esi + edx*4 + 0xfc]
test al, 2
lea edi, [esi + edx*4 + 0xb8]
mov dword [esp + 0x18], edi
je 0x4111d9
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x41126f
jmp 0x411251
mov eax, dword [edi + 0x58]
test eax, eax
jbe 0x411228
mov edx, dword [edi + 0x5c]
add edx, dword [ebx + 0x28]
sub eax, 2
je 0x41121a
sub eax, 2
je 0x41120f
sub eax, 4
je 0x411202
xor eax, eax
mov al, byte [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x41122b
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x41122b
mov eax, dword [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x41122b
xor eax, eax
mov ax, word [edx]
cdq
mov dword [esp + 0x3c], edx
mov edx, eax
jmp 0x41122b
mov edx, dword [edi + 0x24]
test edx, edx
mov dword [esp + 0x4c], edx
jl 0x41204e
mov eax, dword [edi + 0x24]
cmp eax, edx
jge 0x411246
test eax, eax
jg 0x41204e
test edx, edx
jne 0x4112a5
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x41126f
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x41200e
lea eax, [ecx + 1]
mov ecx, dword [esi + 0x2c]
cmp eax, ecx
mov dword [ebx + 0x10], eax
jl 0x41200e
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi + 0x1c]
mov eax, dword [ebx + 0x28]
dec ecx
add eax, edx
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], eax
jmp 0x41200e
mov eax, dword [ebx + 0x28]
mov esi, dword [edi + 0x2c]
add esi, eax
mov al, byte [edi + 0x44]
test al, 4
mov dword [esp + 0x14], esi
je 0x4112df
mov eax, dword [edi + 8]
mov esi, dword [esi]
cmp eax, 1
mov dword [esp + 0x14], esi
jle 0x4112cd
mov ecx, dword [edi + 0x14]
add ecx, esi
jmp 0x4112e2
mov ecx, dword [edi + 0x78]
mov eax, dword [esp + 0x6c]
mov ecx, dword [ecx + eax + 0x130]
add ecx, esi
jmp 0x4112e2
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x28], ecx
cmp dword [edi + 4], eax
jle 0x411487
mov eax, dword [edi + 0x98]
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
jne 0x411341
mov eax, dword [edi + 0x20]
test eax, eax
jbe 0x41130f
imul eax, edx
mov edi, eax
jmp 0x411315
mov edi, dword [edi + 0x18]
imul edi, edx
sub ecx, esi
cmp ecx, edi
jge 0x411328
mov dword [esp + 0x20], 0x82010407
jmp 0x411415
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x411415
mov eax, dword [edi + 8]
cmp eax, 0x15
je 0x411357
cmp eax, 0x16
je 0x411357
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
jmp 0x411366
mov eax, dword [edi + 0x20]
test eax, eax
ja 0x411362
mov eax, ecx
sub eax, esi
mov dword [esp + 0x1c], eax
sub ecx, esi
cmp ecx, eax
jge 0x411372
mov eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x8c]
cmp eax, ecx
jge 0x411389
mov dword [esp + 0x20], 0x82010407
jmp 0x411415
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x6c]
test edx, edx
lea eax, [eax + edi + 0x114]
mov dword [esp + 0x30], eax
jle 0x411415
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
cmp ecx, 0x40
ja 0x4113ca
xor edi, edi
test ecx, ecx
jbe 0x4113f0
mov cl, byte [eax]
mov edx, dword [esp + 0x18]
mov byte [esi], cl
inc esi
mov ecx, dword [edx + 0x8c]
inc eax
inc edi
cmp edi, ecx
jb 0x4113b3
jmp 0x4113f0
mov esi, eax
mov eax, dword [esp + 0x14]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
add eax, dword [ecx + 0x8c]
mov dword [esp + 0x14], eax
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ecx, dword [edx + 0x8c]
mov edx, dword [esp + 0x1c]
sub edx, ecx
add esi, edx
mov edx, dword [esp + 0x28]
dec edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], edx
jne 0x4113a8
test dword [esp + 0x20], 0x80000000
jne 0x412028
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x41144c
mov edx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x41200e
mov eax, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2c]
inc eax
cmp eax, edx
mov dword [ebx + 0x10], eax
jl 0x41200e
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x10], 0
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov eax, dword [edx + 0x1c]
add ecx, eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x41200e
mov eax, dword [edi + 8]
cmp eax, 1
jle 0x411be0
sub eax, 0x15
je 0x411901
dec eax
je 0x4116b5
mov eax, dword [edi + 0x18]
imul eax, edx
add eax, esi
cmp eax, ecx
jbe 0x4114bc
mov dword [esp + 0x20], 0x82010407
jmp 0x411b53
mov eax, dword [edi + 0x1c]
mov ecx, eax
imul ecx, edx
add ecx, ebp
cmp ecx, dword [esp + 0x48]
jbe 0x4114d9
mov dword [esp + 0x20], 0x82010402
jmp 0x411b53
dec eax
je 0x411664
dec eax
je 0x41163c
sub eax, 2
je 0x4115ed
test edx, edx
jle 0x411b53
mov dword [esp + 0x28], edx
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
mov ebx, ebp
mov ecx, 0x10
mov eax, esi
mov edx, ebp
xor edi, edi
and ebx, 0xff0000
call fcn.004152b0
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.004152b0
mov edi, ebp
xor ecx, ecx
and edi, 0xff00
or eax, ecx
or edx, edi
mov ecx, 0x10
call fcn.004152b0
mov edi, ebp
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.004152b0
mov edi, eax
mov ebx, edx
mov ecx, 0x10
mov eax, esi
mov edx, ebp
call fcn.00415290
mov ecx, esi
xor ebp, ebp
and ecx, 0xff00
or edx, ebp
or eax, ecx
mov ecx, 0x10
call fcn.00415290
mov ecx, esi
or edx, ebp
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.00415290
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.00415290
or edi, eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
or ebx, edx
mov dword [eax], edi
mov dword [eax + 4], ebx
add eax, 8
add ebp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x28], eax
jne 0x4114fc
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
jmp 0x411b4f
test edx, edx
jle 0x411b53
mov dword [esp + 0x28], edx
mov eax, dword [ebp]
add esi, 4
mov edx, eax
mov ecx, eax
and edx, 0xff0000
add ebp, 4
shr ecx, 0x10
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
mov eax, dword [esp + 0x28]
shr edx, 8
shl ecx, 8
or edx, ecx
dec eax
mov dword [esi - 4], edx
mov dword [esp + 0x28], eax
jne 0x4115f9
mov dword [esp + 0x10], ebp
jmp 0x411b53
test edx, edx
jle 0x411b53
mov ax, word [ebp]
xor ecx, ecx
mov cl, ah
add esi, 2
mov ch, al
add ebp, 2
mov word [esi - 2], cx
dec edx
jne 0x411644
mov dword [esp + 0x10], ebp
jmp 0x411b53
cmp edx, 0x40
jg 0x411684
test edx, edx
jbe 0x411b53
mov al, byte [ebp]
mov byte [esi], al
inc esi
inc ebp
dec edx
jne 0x411671
mov dword [esp + 0x10], ebp
jmp 0x411b53
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x10], ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, ecx
jmp 0x411b4f
test edx, edx
mov dword [esp + 0x30], 0
jle 0x411b53
jmp 0x4116cf
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x4116de
sub ecx, esi
mov dword [esp + 0x1c], ecx
jmp 0x4116e2
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x48]
lea ecx, [eax + ebp]
cmp ecx, edx
mov dword [esp + 0x10], ecx
jae 0x4118f0
sub eax, 2
je 0x411820
sub eax, 2
je 0x4117f8
sub eax, 4
je 0x411719
xor eax, eax
mov al, byte [ebp]
jmp 0x41182f
mov edx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, edx
mov ecx, 0x10
mov eax, esi
xor edi, edi
and ebx, 0xff0000
call fcn.004152b0
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.004152b0
mov edi, dword [ebp + 4]
xor ecx, ecx
mov ebx, edi
or eax, ecx
and ebx, 0xff00
mov ecx, 0x10
or edx, ebx
call fcn.004152b0
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.004152b0
mov ebx, eax
mov dword [esp + 0x74], edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.00415290
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.00415290
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.00415290
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.00415290
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
or ebx, eax
mov eax, dword [esp + 0x74]
or eax, edx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
jmp 0x411838
mov ecx, dword [ebp]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x41182f
xor eax, eax
xor ecx, ecx
mov ax, word [ebp]
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
test edx, edx
jl 0x4118f0
jg 0x41184b
cmp eax, 2
jb 0x4118f0
mov edi, dword [edi + 0x50]
lea ecx, [eax + edi]
mov edi, dword [esp + 0x48]
sub edi, ebp
cmp edi, ecx
jl 0x411b35
xor edi, edi
cmp edx, edi
jg 0x411b43
mov edx, dword [esp + 0x1c]
jl 0x411877
cmp eax, edx
ja 0x411b43
cmp word [ecx + ebp - 2], 0
jne 0x411b43
mov ebp, dword [esp + 0x10]
cmp eax, 0x40
ja 0x41189e
test eax, eax
jbe 0x4118ca
mov edi, eax
mov cl, byte [ebp]
mov byte [esi], cl
inc esi
inc ebp
dec edi
jne 0x411892
jmp 0x4118ca
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, ecx
mov ecx, dword [esp + 0x4c]
sub edx, eax
mov eax, dword [esp + 0x30]
add esi, edx
inc eax
mov dword [esp + 0x14], esi
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x4116c7
mov dword [esp + 0x10], ebp
jmp 0x411b4f
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010402
jmp 0x411b53
test edx, edx
mov dword [esp + 0x30], 0
jle 0x411b53
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x411922
mov eax, dword [esp + 0x28]
sub eax, esi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x50]
lea ecx, [eax + ebp]
cmp ecx, edx
mov dword [esp + 0x10], ecx
jae 0x4118f0
sub eax, 2
je 0x411a5a
sub eax, 2
je 0x411a32
sub eax, 4
je 0x411959
xor eax, eax
mov al, byte [ebp]
jmp 0x411a69
mov edx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebx, edx
mov ecx, 0x10
mov eax, esi
xor edi, edi
and ebx, 0xff0000
call fcn.004152b0
or edi, eax
or ebx, edx
mov ecx, 0x10
mov eax, edi
mov edx, ebx
call fcn.004152b0
mov edi, dword [ebp + 4]
xor ecx, ecx
mov ebx, edi
or eax, ecx
and ebx, 0xff00
mov ecx, 0x10
or edx, ebx
call fcn.004152b0
mov ebx, edi
xor ecx, ecx
and ebx, 0xff
or eax, ecx
or edx, ebx
mov ecx, 8
call fcn.004152b0
mov ebx, eax
mov dword [esp + 0x7c], edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.00415290
mov ecx, esi
xor edi, edi
and ecx, 0xff00
or edx, edi
or eax, ecx
mov ecx, 0x10
call fcn.00415290
mov ecx, esi
or edx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, 0x10
call fcn.00415290
xor ecx, ecx
and esi, 0xff000000
or edx, ecx
or eax, esi
mov ecx, 8
call fcn.00415290
mov esi, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
or eax, edx
mov dword [esp + 0x58], eax
mov edi, eax
jmp 0x411a76
mov ecx, dword [ebp]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x411a69
xor eax, eax
xor ecx, ecx
mov ax, word [ebp]
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov edi, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
test edi, edi
jl 0x411b35
jg 0x411a89
cmp ecx, 1
jb 0x411b35
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x50]
mov edx, dword [esp + 0x48]
add eax, ecx
sub edx, ebp
cmp edx, eax
mov dword [esp + 0x38], eax
jl 0x411b35
mov eax, dword [esp + 0x1c]
cdq
cmp edi, edx
jg 0x411b43
jl 0x411abb
cmp ecx, eax
ja 0x411b43
mov eax, dword [esp + 0x38]
mov dl, byte [eax + ebp - 1]
test dl, dl
jne 0x411b43
mov ebp, dword [esp + 0x10]
cmp ecx, 0x40
ja 0x411ae2
test ecx, ecx
jbe 0x411b0e
mov edi, ecx
mov dl, byte [ebp]
mov byte [esi], dl
inc esi
inc ebp
dec edi
jne 0x411ad6
jmp 0x411b0e
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x14]
mov ecx, eax
mov esi, ebp
mov edx, ecx
add ebp, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [esp + 0x4c]
add esi, eax
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x14], esi
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x411911
mov dword [esp + 0x10], ebp
jmp 0x411b4f
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010402
jmp 0x411b4f
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], 0x82010406
mov edi, dword [esp + 0x18]
test byte [edi + 0x44], 4
je 0x411b66
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x2c]
add eax, ecx
mov dword [ebx + 0x24], eax
jmp 0x411b6c
sub esi, dword [ebx + 0x28]
mov dword [ebx + 0x24], esi
test dword [esp + 0x20], 0x80000000
jne 0x41205c
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x411ba3
mov edx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ebx + 0x28]
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [ebx + 0x38]
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], eax
jmp 0x41200e
mov esi, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2c]
inc esi
mov eax, esi
mov dword [ebx + 0x10], esi
cmp eax, edx
jl 0x41200e
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x38]
dec ecx
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x10], 0
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], eax
jmp 0x41200e
cmp dword [esp + 0x34], 0x20
jge 0x412034
test eax, eax
jne 0x411d92
mov ecx, dword [edi + 0x68]
mov esi, dword [ebx + 0x28]
mov eax, dword [edi + 0x64]
add ecx, esi
sub eax, 2
je 0x411c26
sub eax, 2
je 0x411c22
sub eax, 4
je 0x411c13
xor eax, eax
mov al, byte [ecx]
jmp 0x411c2b
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
jmp 0x411c34
mov eax, dword [ecx]
jmp 0x411c2b
xor eax, eax
mov ax, word [ecx]
cdq
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x78]
mov ecx, dword [esp + 0x6c]
mov esi, dword [edx + ecx + 0x24c]
lea edx, [edx + ecx + 0x114]
xor ecx, ecx
mov dword [esp + 0x24], edx
cmp esi, dword [edx + 0x134]
lea edi, [edx + 0x134]
mov dword [esp + 0x38], edi
setg cl
dec ecx
mov dword [esp + 0x1c], ecx
mov ecx, eax
sub ecx, esi
js 0x411c8e
cmp ecx, dword [edx + 0x2c]
jge 0x411c8e
lea esi, [ecx + ecx*4]
lea esi, [esi + esi*8]
mov edi, dword [edx + esi*4 + 0x138]
lea esi, [edx + esi*4]
cmp edi, eax
jne 0x411c8e
cmp edi, dword [esi + 0x134]
jle 0x411d01
mov edx, dword [edx + 0x2c]
cmp edx, 0x10
jge 0x411cbc
xor esi, esi
test edx, edx
jle 0x411d05
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], eax
jg 0x411ca9
cmp eax, dword [ecx]
jle 0x411cb6
inc esi
add ecx, 0xb4
cmp esi, edx
jl 0x411ca0
jmp 0x411d05
mov dword [esp + 0x1c], esi
jmp 0x411d05
lea esi, [edx - 1]
xor eax, eax
test esi, esi
jl 0x411d05
lea ecx, [esi + eax]
mov edi, dword [esp + 0x24]
sar ecx, 1
lea edx, [ecx + ecx*4]
lea edx, [edx + edx*8]
lea edx, [edi + edx*4]
mov edi, dword [edx + 0x138]
mov edx, dword [edx + 0x134]
cmp edi, edx
jg 0x411cf8
cmp dword [esp + 0x40], edi
jge 0x411cf2
lea esi, [ecx - 1]
jmp 0x411cfb
cmp dword [esp + 0x40], edx
jle 0x411d01
lea eax, [ecx + 1]
cmp eax, esi
jle 0x411cc5
jmp 0x411d05
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x411d2c
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
mov ecx, dword [ebx + 0x20]
cmp dword [esi + edx*4 + 0xbc], ecx
jg 0x411d2c
test esi, esi
jne 0x411db2
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x411d57
mov edx, dword [ebx + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x28]
dec edx
add ecx, eax
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x41200e
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 0x2c]
inc ecx
cmp ecx, edx
mov dword [ebx + 0x10], ecx
jl 0x41200e
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x10], 0
dec edx
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov eax, dword [edx + 0x1c]
add ecx, eax
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x2c], ecx
jmp 0x41200e
mov edx, dword [edi + 0x78]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], 0
lea ecx, [edx + eax + 0x114]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov esi, ecx
mov edi, dword [esp + 0x34]
add ebx, 0xbc
mov edx, dword [esp + 0x4c]
inc edi
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], edi
mov dword [ebx + 0x28], eax
mov eax, dword [esi + 0x64]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x50], ebx
mov dword [ebx + 0x24], edi
mov dword [ebx], esi
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x30], ebp
jbe 0x411e1a
mov ecx, dword [esi + 0x68]
mov dword [ebx + 0x14], eax
cmp ecx, 0xffffffff
je 0x411e08
mov ecx, eax
mov dword [ebx + 0x34], ebp
neg ecx
add ebp, eax
mov dword [ebx + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ebp
jmp 0x411e66
mov eax, dword [esi + 0x5c]
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x18], eax
lea edx, [eax + ebp]
mov dword [ebx + 0x34], edx
jmp 0x411e66
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x50]
cmp eax, edi
jbe 0x411e63
mov edx, dword [ecx + 0x54]
mov dword [ebx + 0x14], eax
cmp edx, 0xffffffff
je 0x411e40
mov dword [ebx + 0x34], ebp
add ebp, eax
neg eax
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x18], eax
jmp 0x411e66
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x28]
cmp eax, edx
jl 0x411e56
sub eax, edx
mov dword [ebx + 0x18], eax
add eax, ebp
mov dword [ebx + 0x34], eax
jmp 0x411e66
mov edx, dword [ebx - 0x8c]
add edx, eax
mov dword [ebx + 0x34], edx
jmp 0x411e66
mov dword [ebx + 0x14], edi
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x30], ebp
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x74]
cmp eax, edi
mov dword [ebx + 4], ecx
mov dword [ebx + 0x38], 1
jbe 0x411ff6
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x48]
add ecx, ebp
sub edx, ecx
cmp edx, eax
jl 0x411feb
sub eax, 2
je 0x411fc4
sub eax, 2
je 0x411f9d
sub eax, 4
je 0x411eb8
xor eax, eax
mov al, byte [ecx]
jmp 0x411fd2
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
mov ecx, 0x10
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
xor esi, esi
and edi, 0xff0000
call fcn.004152b0
or esi, eax
or edi, edx
mov ecx, 0x10
mov eax, esi
mov edx, edi
call fcn.004152b0
mov esi, dword [esp + 0x68]
xor ecx, ecx
mov edi, esi
or eax, ecx
and edi, 0xff00
mov ecx, 0x10
or edx, edi
call fcn.004152b0
mov edi, esi
xor ecx, ecx
and edi, 0xff
or eax, ecx
or edx, edi
mov ecx, 8
call fcn.004152b0
mov edi, dword [esp + 0x64]
mov dword [esp + 0x88], eax
mov dword [esp + 0x38], edx
mov ecx, 0x10
mov eax, edi
mov edx, esi
call fcn.00415290
xor ecx, ecx
and edi, 0xff00
or edx, ecx
or eax, edi
mov ecx, 0x10
call fcn.00415290
mov ecx, dword [esp + 0x64]
xor esi, esi
and ecx, 0xff0000
or edx, esi
or eax, ecx
mov ecx, 0x10
call fcn.00415290
mov ecx, dword [esp + 0x64]
or edx, esi
and ecx, 0xff000000
or eax, ecx
mov ecx, 8
call fcn.00415290
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x24]
or ecx, eax
mov eax, dword [esp + 0x38]
or eax, edx
mov dword [esp + 0x3c], eax
jmp 0x411fd9
mov ecx, dword [ecx]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
jmp 0x411fd2
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov ch, al
shr eax, 8
or eax, ecx
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
test ecx, ecx
mov dword [ebx + 0x20], ecx
jne 0x411fff
mov edx, dword [ebx - 0x9c]
mov dword [ebx + 0x20], edx
jmp 0x411fff
mov eax, dword [ebx - 0x9c]
mov dword [ebx + 0x20], eax
jmp 0x411fff
mov ecx, dword [ebx - 0x9c]
mov dword [ebx + 0x20], ecx
mov eax, dword [ebx + 0x20]
mov ecx, dword [esi + 8]
cmp ecx, eax
jg 0x412044
cmp eax, dword [esi + 0x58]
jl 0x412044
mov eax, dword [esp + 0x34]
xor edi, edi
cmp eax, edi
jg 0x410f67
jmp 0x41205c
mov dword [esp + 0x20], 0x82010402
jmp 0x41205c
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x2c]
mov dword [ebx + 0x24], eax
jmp 0x41205c
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x20], 0x82010404
mov dword [ebx + 0x24], ecx
jmp 0x41205c
mov dword [esp + 0x20], 0x82010401
jmp 0x41205c
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x20], 0x82010403
mov dword [ebx + 0x24], edx
mov edx, dword [esp + 0x1820]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xbc]
test esi, 0x80000000
mov dword [edx + 4], eax
je 0x4120e2
mov ecx, dword [esp + 0x34]
mov eax, 1
cmp ecx, eax
jle 0x4120e2
lea ecx, [esp + 0x178]
mov edi, dword [ecx - 0x20]
test byte [edi + 0x44], 4
jne 0x4120c8
mov edi, dword [ecx]
mov ebx, dword [edx + 4]
add ebx, edi
mov edi, dword [esp + 0x34]
inc eax
add ecx, 0xbc
cmp eax, edi
mov dword [edx + 4], ebx
jl 0x41208d
mov eax, dword [esp + 0x1824]
pop edi
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1808
ret
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
mov eax, dword [esp + ecx*4 + 0x9c]
mov ecx, dword [eax + 0x18]
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1824]
pop edi
sub ebp, dword [eax]
mov dword [eax + 4], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1808
ret
mov ecx, dword [esp + 0x1820]
xor eax, eax
pop edi
pop esi
mov dword [ecx + 4], eax
mov dword [edx + 4], eax
pop ebp
mov eax, 0x82010401
pop ebx
add esp, 0x1808
ret
pop edi
pop esi
pop ebp
mov eax, 0x82010468
pop ebx
add esp, 0x1808
ret