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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x128
mov esi, dword [esp + 0x140]
mov dword [esp + 0x118], ecx
mov eax, dword [esp + 0x13c]
mov cl, byte [esi + 4]
mov esi, dword [esi]
add eax, edx
mov dword [esp + 0x120], esi
lea esi, [esp + 0x44]
mov byte [esp + 0x124], cl
mov byte [esi + 0x50], cl
lea ecx, [esp + 0xec]
movsd xmm0, qword [esp + 0x11c]
and dword [ecx + 6], 0
and dword [ecx + 2], 0
and dword [ecx + 0xe], 0
and dword [ecx + 0xa], 0
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
movzx ecx, word [ecx + 0x10]
movsd qword [esi + 0x48], xmm0
mov word [esi + 0x12], cx
movsd qword [esi + 2], xmm2
movsd qword [esi + 0xa], xmm1
and dword [esi - 0xc], 0
mov dword [esi - 4], 0x110000
and word [esi], 0
lea esi, [esp + 0x58]
xor ecx, ecx
and word [esi], 0
mov byte [esi + 4], cl
and dword [esi + 8], 0
mov byte [esi + 0xc], cl
and dword [esi + 0x10], 0
mov byte [esi + 0x14], cl
and dword [esi + 0x18], 0
mov byte [esi + 0x1c], cl
and dword [esi + 0x20], 0
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], eax
lea eax, [esp + 0xcc]
xor edx, edx
mov dword [esi + 0x2c], eax
and dword [eax + 4], 0
and dword [eax], 0
and dword [eax + 8], 0
call 0x5111ce
pop eax
and dword [esi + 0x30], 0
and dword [esi + 0x40], 0
and dword [esi + 0x44], 0
mov byte [esi + 0x48], cl
mov byte [esi + 0x4c], cl
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x148]
and dword [ecx + 8], 0
mov eax, dword [eax + 8]
mov dword [esp + 0x114], eax
call fcn.005de5e8
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
movzx esi, word [esp + 0x44]
mov ebx, dword [esp + 0x54]
cmp ebp, 1
movzx ecx, si
jne 0x511268
cmp edi, 0x110000
jne 0x511240
cmp eax, ebx
jb 0x5116c7
and dword [esp + 0x54], 0
xor ebx, ebx
jmp 0x51125f
cmp si, 5
jae 0x512e87
cmp eax, ecx
jb 0x5116c3
test si, si
je 0x51125d
and word [esp + 0x44], 0
xor esi, esi
and dword [esp + 0x38], 0
xor ebp, ebp
jmp 0x51121f
cmp ebp, 2
je 0x511690
lea edi, [esp + 0x58]
mov dword [esp + 0xec], edi
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x511659
cmp byte [edi + 0x38], 2
je 0x51147f
lea ebx, [edi + 0x24]
lea ebp, [edi + 0x30]
cmp dword [ebp], 0
je 0x5112af
mov ecx, ebp
call fcn.0050d41f
cmp eax, 0x110000
jne 0x511321
and dword [ebp], 0
mov ecx, ebx
call fcn.0050d41f
mov esi, eax
add eax, 0xffffffd3
cmp eax, 2
jb 0x511356
cmp esi, 0x110000
je 0x511474
lea eax, [esi - 0x61]
cmp eax, 0x1a
jb 0x511356
lea eax, [esi - 0x30]
cmp eax, 0xa
jb 0x511356
mov ecx, esi
call fcn.00510ec1
movzx ecx, byte [eax]
mov ecx, dword [ecx*4 + 0x512f18]
add ecx, dword [esp + 0x10]
jmp ecx
mov esi, eax
jmp 0x511356
mov eax, dword [esp + 0xec]
cmp byte [eax + 0x48], 0
je 0x5113be
cmp esi, 0x80
jb 0x51142c
lea edi, [esi - 0xac00]
cmp edi, 0x2ba4
jb 0x5113d4
mov ecx, esi
call fcn.005de699
test eax, eax
jne 0x511397
mov ecx, esi
call fcn.005de706
test eax, eax
je 0x51142c
mov ebx, edx
mov edi, eax
lea esi, [esp + 0xec]
shl ebx, 2
test ebx, ebx
je 0x51143a
mov edx, dword [edi]
mov ecx, esi
add edi, 4
call fcn.00510eb9
add ebx, 0xfffffffc
jmp 0x5113a5
cmp esi, 0x80
jb 0x51142c
lea edi, [esi - 0xac00]
cmp edi, 0x2ba4
jae 0x511446
mov eax, edi
xor edx, edx
mov cx, 0x24c
mov ebp, 0xffff
lea ebx, [esp + 0xec]
div cx
or eax, 0x1100
mov ecx, ebx
and eax, ebp
mov esi, edx
mov edx, eax
call fcn.00510eb9
mov eax, esi
xor edx, edx
mov si, 0x1c
mov ecx, ebx
div si
lea edx, [eax + 0x1161]
and edx, ebp
call fcn.00510eb9
mov eax, edi
xor edx, edx
div si
test dx, dx
je 0x51143a
add edx, 0x11a7
movzx esi, dx
lea ecx, [esp + 0xec]
mov edx, esi
call fcn.00510eb9
mov edi, dword [esp + 0xec]
jmp 0x51127c
mov ecx, esi
call fcn.005de706
test eax, eax
je 0x51142c
mov ebx, edx
mov edi, eax
lea esi, [esp + 0xec]
shl ebx, 2
test ebx, ebx
je 0x51143a
mov edx, dword [edi]
mov ecx, esi
add edi, 4
call fcn.00510eb9
add ebx, 0xfffffffc
jmp 0x51145f
mov byte [edi + 0x38], 2
mov edi, dword [esp + 0xec]
cmp dword [edi + 8], 0x110000
jne 0x51148d
mov eax, dword [edi + 0x14]
jmp 0x511490
movzx eax, word [edi]
test eax, eax
je 0x511661
mov ecx, edi
call fcn.0050de0b
mov edi, dword [esp + 0xec]
mov esi, dword [edi + 8]
cmp esi, 0x110000
jne 0x5114b6
mov eax, dword [edi + 0x14]
jmp 0x5114b9
movzx eax, word [edi]
mov dword [edi + 0x44], eax
mov ecx, dword [edi + 0x40]
cmp esi, 0x110000
jne 0x5114cf
mov ebx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
jmp 0x5114de
movzx edx, word [edi]
cmp edx, 5
jae 0x512e64
lea ebx, [edi + 4]
cmp edx, ecx
jbe 0x512e1e
mov edx, dword [ebx + ecx*8 + 4]
inc ecx
cmp ecx, eax
mov dword [esp + 0xc], edx
jne 0x511500
cmp esi, 0x110000
jne 0x51150c
mov ecx, dword [edi + 0x14]
jmp 0x51150f
mov esi, dword [esp + 0xc]
mov dword [edi + 0x40], ecx
jmp 0x5115c5
movzx ecx, word [edi]
sub ecx, eax
lea edx, [edi + 4]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
cmp ecx, esi
je 0x511598
mov ecx, dword [edi + 0x44]
add ecx, esi
cmp dword [edi + 8], 0x110000
jne 0x51154a
mov edx, dword [edi + 0x14]
cmp edx, ecx
jbe 0x512bef
mov eax, dword [edi + 0x10]
mov bl, byte [eax + ecx*8]
mov ebp, dword [eax + ecx*8 + 4]
mov byte [esp + 8], bl
jmp 0x51157e
movzx edx, word [edi]
cmp edx, 5
jae 0x512e64
cmp ecx, edx
jae 0x512bef
mov ebx, dword [esp]
mov al, byte [ebx + ecx*8]
mov ebp, dword [ebx + ecx*8 + 4]
xor ecx, ecx
mov byte [esp + 8], al
push 0x7674d0
push 4
push ebx
call fcn.0050dd32
add esp, 0xc
cmp edx, esi
jbe 0x51172d
mov cl, byte [esp + 8]
mov byte [eax + esi*8], cl
mov ecx, dword [esp + 4]
mov dword [eax + esi*8 + 4], ebp
inc esi
jmp 0x51151d
cmp dword [edi + 8], 0x110000
jne 0x5115af
cmp dword [edi + 0x14], ecx
mov esi, dword [esp + 0xc]
jb 0x5115bd
mov dword [edi + 0x14], ecx
jmp 0x5115bd
movzx eax, word [edi]
mov esi, dword [esp + 0xc]
cmp ecx, eax
jae 0x5115bd
mov word [edi], cx
and dword [edi + 0x40], 0
and dword [edi + 0x44], 0
mov ecx, esi
call fcn.005de773
mov edi, dword [esp + 0x40]
mov ebx, eax
cmp edi, 0x110000
jne 0x5115eb
test bl, bl
jne 0x5116f7
mov dword [esp + 0x40], esi
jmp 0x511271
cmp byte [esp + 0xa4], 0
je 0x511610
cmp byte [esp + 0xa5], bl
jae 0x511632
mov ecx, edi
mov edx, esi
call fcn.005de876
cmp eax, 0x110000
je 0x51163a
jmp 0x511629
mov ecx, edi
mov edx, esi
call fcn.005de876
cmp eax, 0x110000
jne 0x511629
test bl, bl
jne 0x51163a
jmp 0x511716
mov dword [esp + 0x40], eax
jmp 0x511271
test bl, bl
je 0x5116fb
lea ecx, [esp + 0x44]
mov edx, esi
call fcn.0050dad6
mov byte [esp + 0xa4], 1
mov byte [esp + 0xa5], bl
jmp 0x511271
mov esi, dword [edi + 8]
jmp 0x5114bc
mov dword [esp + 0x38], 2
and dword [esp + 0x3c], 0
xor eax, eax
mov edi, dword [esp + 0x40]
cmp edi, 0x110000
push 2
pop ebp
je 0x51120e
mov dword [esp + 0x40], 0x110000
jmp 0x51171a
cmp edi, 0x110000
jne 0x5116a3
cmp eax, ebx
jb 0x5116b5
and dword [esp + 0x54], 0
jmp 0x5116e4
cmp si, 5
jae 0x512e87
cmp eax, ecx
lea edx, [esp + 0x48]
jae 0x5116d9
mov edi, dword [edx + eax*4]
inc eax
mov dword [esp + 0x38], 2
jmp 0x5116d3
lea edx, [esp + 0x48]
mov edi, dword [edx + eax*4]
inc eax
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], eax
jmp 0x51171a
test si, si
je 0x5116e4
and word [esp + 0x44], 0
mov edi, dword [esp + 0x40]
mov eax, 0x110000
mov dword [esp + 0x40], eax
cmp edi, eax
jne 0x51171a
jmp 0x511739
mov edi, esi
jmp 0x51171a
mov dword [esp + 0x40], esi
mov byte [esp + 0xa4], 0
mov dword [esp + 0x38], 1
and dword [esp + 0x3c], 0
jmp 0x51171a
mov dword [esp + 0x40], esi
mov ecx, dword [esp + 0x144]
mov edx, edi
call fcn.0050e241
jmp 0x511206
mov ecx, esi
push 0x752e40
call fcn.0062d3f0
lea ecx, [esp + 0x58]
call fcn.0050dbd1
lea ecx, [esp + 0x44]
call fcn.0050dbed
mov ecx, dword [esp + 0x140]
lea eax, [esp + 0xbc]
mov edi, dword [esp + 0x144]
lea esi, [esp + 0xec]
and dword [eax], 0
mov dword [eax + 4], 4
and dword [eax + 8], 0
mov al, byte [ecx]
movzx ebx, word [ecx + 2]
mov edx, dword [edi + 4]
mov byte [esp + 0x27], al
mov al, byte [ecx + 4]
mov ecx, esi
mov word [esp + 0xa8], bx
mov byte [esp + 0xaa], al
push dword [edi + 8]
call fcn.00512f38
pop eax
mov cl, 1
mov dword [esp + 0x28], 0
mov ebp, ecx
mov ecx, esi
call fcn.0050e52c
test eax, eax
je 0x512bf9
mov ebx, eax
mov eax, ebp
mov edi, edx
test al, 1
jne 0x5117d3
mov ecx, dword [esp + 0x148]
push 0x2e
pop edx
call fcn.0050e241
mov ecx, ebx
mov edx, edi
push 4
push str.xn__T_u
call fcn.0050d5f1
pop ecx
pop edx
mov ecx, ebx
mov edx, 0
add ecx, 4
test al, al
cmove ecx, edx
je 0x5118ca
and dword [esp + 0xc4], 0
mov eax, ecx
add edi, 0xfffffffc
lea ecx, [esp + 0x38]
push 0x2d
pop edx
mov dword [esp + 4], edi
push edi
mov dword [esp + 0x1c], eax
push eax
call fcn.0050e3e0
pop eax
pop ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
cmp ebx, dword [esp + 8]
ja 0x51190f
mov edx, dword [esp + 0x44]
sub ebx, edx
jb 0x51190f
mov eax, dword [esp + 0x4c]
add edx, dword [esp + 0x10]
movzx ecx, byte [esp + eax + 0x4f]
push ebx
call fcn.0045eba0
pop ecx
cmp eax, 1
jne 0x51190f
mov ebx, edx
mov esi, dword [esp + 0x4c]
add ebx, dword [esp + 0x44]
lea edi, [esi - 1]
mov ebp, ebx
sub ebp, edi
jb 0x5118c1
mov eax, ebp
add eax, esi
jb 0x5118c1
cmp eax, dword [esp + 8]
ja 0x5118c1
mov eax, dword [esp + 0x10]
mov ecx, esi
lea edx, [esp + 0x50]
add eax, ebp
mov dword [esp], eax
push 0x7b07d4
push 4
call fcn.0040175f
pop ecx
pop ecx
mov ecx, dword [esp]
mov dword [esp + 0xc], eax
mov eax, edx
mov edx, esi
push eax
push dword [esp + 0x10]
call fcn.00513fcb
pop ecx
pop edx
test al, al
jne 0x511b1b
mov dword [esp + 0x48], ebx
jmp 0x511833
test byte [esp + 0x28], 1
jne 0x5118de
mov ecx, ebx
mov edx, edi
call fcn.0050e676
mov dword [esp + 0x28], eax
mov ecx, ebx
lea eax, [esp + 0xcc]
mov edx, edi
push eax
push dword [esp + 0x144]
call fcn.00512fd0
pop eax
pop ecx
mov ecx, dword [esp + 0x148]
mov edx, ebx
push edi
call fcn.005de606
pop eax
xor ecx, ecx
jmp 0x5117a9
xor esi, esi
mov ecx, 0x7b0e68
mov edx, esi
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb0], esi
call fcn.0050e43f
test al, al
je 0x511aff
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp], 0
mov dword [esp + 0x20], 0
add ebp, ecx
push 0x48
pop eax
mov esi, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov dword [esp + 0x30], esi
cmp ecx, ebp
je 0x511b76
mov eax, dword [esp + 8]
inc ecx
lea edx, [eax + 0x1a]
neg eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
push 0x24
pop esi
mov ebp, dword [esp + 0x20]
xor edi, edi
inc edi
mov al, byte [ecx - 1]
mov ebx, ecx
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
jae 0x5119a3
add al, 0xea
mov ecx, eax
jmp 0x5119b9
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
jb 0x5119b9
add al, 0x9f
cmp al, 0x19
mov ecx, eax
ja 0x511aff
test edi, edi
je 0x512e28
mov eax, ebp
xor edx, edx
movzx ecx, cl
not eax
div edi
cmp eax, ecx
jb 0x511aff
mov eax, edi
imul eax, ecx
add ebp, eax
mov eax, dword [esp + 0xc]
cmp esi, dword [esp + 0x10]
lea eax, [eax + esi]
push 0x1a
pop edx
cmovae eax, edx
cmp esi, dword [esp + 8]
mov edx, 1
cmovbe eax, edx
cmp eax, ecx
ja 0x511a23
push 0x24
pop ecx
sub ecx, eax
mov eax, ecx
mul edi
jo 0x511aff
cmp ebx, dword [esp + 4]
je 0x511aff
imul edi, ecx
mov ecx, ebx
add esi, 0x24
inc ecx
jmp 0x51198e
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov ecx, ebp
xor eax, eax
sub ecx, edi
test edi, edi
lea edx, [esi + 1]
sete al
push eax
call fcn.00510fcb
pop ecx
inc esi
mov dword [esp + 8], eax
je 0x512e75
mov eax, ebp
xor edx, edx
mov dword [esp + 0x30], esi
div esi
add dword [esp + 0x14], eax
jb 0x511aff
cmp dword [esp + 0x14], 0x110000
je 0x511aff
mov eax, dword [esp + 0x14]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x511aff
mov ecx, dword [esp]
mov eax, dword [esp + 0xc0]
mov edi, edx
xor ebp, ebp
mov edx, ecx
lea ecx, [ecx*8]
cmp ecx, ebp
je 0x511aad
mov esi, dword [eax + ebp]
cmp esi, edi
jb 0x511aa8
inc esi
mov dword [eax + ebp], esi
add ebp, 8
jmp 0x511a99
cmp edx, dword [esp + 0xbc]
jne 0x511ad0
lea ecx, [esp + 0xbc]
call fcn.005cbbcc
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov ecx, ebx
mov dword [eax + edx*8], edi
mov ebx, edx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xb0]
mov ebp, dword [esp + 4]
inc edi
mov dword [esp + 0x20], edi
mov dword [eax + ebx*8 + 4], edx
inc ebx
mov dword [esp], ebx
mov dword [esp + 0xc4], ebx
jmp 0x51196a
mov al, 1
mov byte [esp + 0xcc], 1
mov dword [esp + 0x28], eax
xor ecx, ecx
lea esi, [esp + 0xec]
jmp 0x5117a9
mov edx, dword [esp + 0x18]
mov ecx, ebp
push dword [esp + 4]
call fcn.0050e41e
pop ecx
test eax, eax
je 0x512edd
mov ecx, eax
mov esi, edx
cmp ebx, edi
je 0x511916
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 4]
inc ebp
mov dword [esp + 0xb8], ecx
mov ecx, ebp
mov edx, edi
push ebx
call fcn.00419409
pop ecx
test eax, eax
je 0x512ef2
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x18], eax
mov dword [esp + 4], edx
jmp 0x511916
mov eax, dword [esp + 0xc0]
cmp dword [esp], 0x15
mov dword [esp + 0x2c], eax
jae 0x511ba5
cmp dword [esp], 1
jbe 0x511fea
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp]
push 1
call fcn.0050dd62
pop eax
jmp 0x511fea
mov eax, dword [esp]
xor ecx, ecx
lea edx, [eax*4]
mov al, byte [0x7f50e0]
and edx, 0x7ffffff8
call fcn.005bfb70
test eax, eax
mov dword [esp + 0x10], eax
je 0x512f02
push 0x10
pop esi
mov ecx, esi
call fcn.0049a873
test eax, eax
je 0x512f0c
mov ebx, eax
xor ebp, ebp
xor ecx, ecx
mov edx, dword [esp]
sub edx, ecx
jbe 0x511fc2
cmp edx, 2
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], esi
jb 0x511d34
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], edx
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 8]
cmp ecx, dword [eax]
jae 0x511c2c
push 2
pop edx
mov dword [esp + 0x34], ebx
cmp dword [esp + 4], edx
je 0x511c49
mov esi, dword [eax + edx*8]
cmp esi, ecx
jae 0x511c4d
inc edx
mov ecx, esi
jmp 0x511c1a
push 2
pop edx
cmp dword [esp + 4], edx
je 0x511d26
mov esi, dword [eax + edx*8]
cmp esi, ecx
jb 0x511d30
inc edx
mov ecx, esi
jmp 0x511c2f
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], edx
add edx, ecx
mov dword [esp + 0xac], edx
push 0x78976c
push dword [esp + 4]
push dword [esp + 0x34]
call fcn.0050dd32
add esp, 0xc
mov ebx, edx
lea edi, [eax + edx*8]
shr ebx, 1
lea ecx, [ebx*8]
mov edx, ebx
sub edi, ecx
xor ecx, ecx
push 0x7896dc
push ebx
push eax
call fcn.0050dd32
add esp, 0xc
mov esi, eax
xor ecx, ecx
mov dword [esp + 0xb4], edx
mov edx, ebx
push 0x7896ec
push ebx
push edi
call fcn.0050dd32
add esp, 0xc
mov ecx, dword [esp + 0xb4]
add esi, 4
dec ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], ebp
cmp ebx, 0xffffffff
je 0x511d11
sub ecx, 1
jb 0x512e41
cmp ebx, dword [esp + 0x18]
jae 0x512e54
mov ebp, dword [esp + 0x20]
mov eax, dword [esi - 4]
mov edi, dword [esi]
mov edx, dword [ebp + ebx*8]
mov dword [esp + 8], eax
mov eax, dword [ebp + ebx*8 + 4]
mov dword [esi - 4], edx
mov edx, dword [esp + 8]
mov dword [esi], eax
add esi, 8
mov dword [ebp + ebx*8], edx
mov dword [ebp + ebx*8 + 4], edi
mov ebp, dword [esp + 0xc]
dec ebx
jmp 0x511cc9
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
jmp 0x511d37
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
jmp 0x511d34
mov ecx, dword [esp + 0x14]
lea eax, [edx + ecx]
cmp eax, ecx
jb 0x512ec1
cmp eax, dword [esp]
ja 0x512ec1
jae 0x511d8b
cmp edx, 9
ja 0x511d8b
mov eax, dword [esp]
lea esi, [ecx + 0xa]
mov ecx, dword [esp + 0x14]
cmp esi, eax
cmovae esi, eax
cmp edx, 1
adc edx, 0
mov edi, edx
mov edx, esi
push 0x789838
push eax
push dword [esp + 0x34]
call fcn.0050dd32
add esp, 0xc
mov ecx, eax
push edi
call fcn.0050dd62
mov ecx, dword [esp + 0x18]
mov eax, esi
add esp, 4
mov esi, dword [esp + 0x30]
mov dword [esp + 0xac], eax
cmp ebp, esi
jne 0x511de0
lea ecx, [esi + esi]
mov dword [esp + 0x34], ebx
mov dword [esp + 0xc8], ecx
call fcn.0049a873
test eax, eax
je 0x512ed3
mov ebx, eax
shl esi, 3
push esi
mov esi, dword [esp + 0x38]
push esi
push eax
call fcn.00616830
add esp, 0xc
mov ecx, esi
push 4
pop edx
call fcn.004533f0
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x14]
jmp 0x511de7
mov dword [esp + 0xc8], esi
sub eax, ecx
mov dword [esp + 0x34], ebx
mov dword [ebx + ebp*8], eax
mov dword [ebx + ebp*8 + 4], ecx
inc ebp
mov edx, ebp
mov ecx, ebx
push dword [esp]
call fcn.004978a4
pop ecx
cmp eax, 1
jne 0x511faf
mov esi, edx
mov edx, ebp
mov ecx, ebx
push 0x78977c
push esi
call fcn.005c83b9
pop ecx
pop edx
mov edx, ebp
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp + 0x18], esi
inc esi
mov ecx, ebx
mov dword [esp + 0xc], edx
push 0x78978c
mov dword [esp + 0x24], esi
push esi
call fcn.005c83b9
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0xb4], ecx
add edx, ecx
mov ecx, ebp
mov ebp, edi
push 0x78979c
push dword [esp + 4]
push dword [esp + 0x34]
call fcn.0050dd32
add esp, 0xc
lea esi, [eax + edi*8]
mov edi, edx
mov dword [esp + 8], eax
mov dword [esp + 0x30], ebp
sub edi, ebp
cmp edi, ebp
jae 0x511ef2
lea eax, [edi*8]
push eax
push esi
mov ebx, dword [esp + 0x18]
push ebx
mov dword [esp + 0x10], edx
call fcn.00616830
add esp, 0xc
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
lea ebp, [ebx + edi*8]
lea edi, [ecx + eax*8 - 8]
cmp esi, ecx
jbe 0x511f48
cmp ebp, dword [esp + 0x10]
jbe 0x511f48
mov eax, dword [ebp - 8]
mov edx, dword [esi - 8]
mov ecx, 0
mov ebx, 0
cmp eax, edx
sbb ecx, ecx
cmp eax, edx
adc ebx, 0xffffffff
lea esi, [esi + ecx*8]
cmp eax, edx
mov ecx, dword [esp + 8]
lea ebp, [ebp + ebx*8]
mov eax, ebp
cmovb eax, esi
movsd xmm0, qword [eax]
movsd qword [edi], xmm0
add edi, 0xfffffff8
jmp 0x511ea8
lea ecx, [eax + edx*8]
mov dword [esp + 4], ecx
lea ecx, [ebp*8]
push ecx
push eax
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00616830
add esp, 0xc
mov edi, dword [esp + 8]
lea ebp, [ebx + ebp*8]
mov ecx, ebx
cmp ecx, ebp
jae 0x511f4e
cmp esi, dword [esp + 4]
jae 0x511f4e
mov ebx, dword [esi]
xor edx, edx
xor eax, eax
cmp ebx, dword [ecx]
mov ebx, ecx
cmovb ebx, esi
setae dl
setb al
movsd xmm0, qword [ebx]
lea esi, [esi + eax*8]
lea ecx, [ecx + edx*8]
movsd qword [edi], xmm0
add edi, 8
jmp 0x511f18
mov ecx, dword [esp + 0x10]
mov edi, esi
sub ebp, ecx
push ebp
push ecx
push edi
call fcn.00616830
add esp, 0xc
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
cmp ebp, dword [esp + 0x20]
jbe 0x512e8c
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x14]
add eax, dword [esp + 0x30]
cmp ebp, edx
mov dword [ebx + edx*8 + 8], eax
mov dword [ebx + edx*8 + 0xc], ecx
jbe 0x512e97
lea eax, [ebx + edx*8]
lea ecx, [ebx + edx*8 + 8]
not edx
add edx, ebp
shl edx, 3
push edx
push ecx
push eax
call fcn.006162b0
add esp, 0xc
dec ebp
jmp 0x511df5
mov esi, dword [esp + 0xc8]
mov ecx, dword [esp + 0xac]
jmp 0x511be5
mov ecx, ebx
push 4
pop esi
mov edx, esi
call fcn.004533f0
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004533f0
mov eax, dword [esp + 0xc4]
mov esi, dword [esp + 0xb0]
mov dword [esp], eax
mov edx, dword [esp + 0xb8]
mov eax, esi
mov ebx, dword [esp]
mov ecx, dword [esp + 0x148]
add eax, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x2c]
mov edi, dword [ecx + 8]
add esi, ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
and dword [esp + 0x48], 0
mov edx, esi
call fcn.005de5e8
and dword [esp + 0x4c], 0
mov dword [esp + 0x50], esi
xor esi, esi
cmp esi, dword [esp]
jae 0x512041
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + esi*8]
cmp ecx, dword [esp + 0x4c]
je 0x512075
lea ecx, [esp + 0x38]
call fcn.0050d41f
cmp eax, 0x110000
jne 0x512064
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
cmp esi, ecx
mov eax, ecx
mov dword [esp], ecx
jb 0x51202f
jmp 0x512097
inc dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov dword [esp], ecx
jmp 0x512087
lea edx, [esi + 1]
inc ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + esi*8 + 4]
mov esi, edx
mov ecx, dword [esp + 0x148]
mov edx, eax
call fcn.0050e241
jmp 0x51202f
mov eax, dword [esp + 0x148]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push 0x75301c
push edi
call fcn.00419492
pop ecx
pop ecx
test byte [esp + 0x28], 1
mov edi, eax
mov dword [esp + 0x18], edx
jne 0x5120cd
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.0050e676
mov dword [esp + 0x28], eax
lea ecx, [esp + 0xcc]
call fcn.0050e6c5
xor ecx, ecx
test al, al
lea esi, [esp + 0xec]
jne 0x5117a9
mov eax, edi
add edi, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x3c], edi
mov ebx, ecx
lea ecx, [esp + 0x38]
mov bh, al
call fcn.0050d41f
cmp eax, 0x110000
je 0x512613
mov esi, eax
xor eax, eax
cmp esi, 0x80
jb 0x512102
mov ecx, esi
call fcn.005de773
cmp bh, al
jbe 0x512137
test al, al
jne 0x512b9b
lea ecx, [esi - 0x340]
cmp ecx, 4
ja 0x51214b
cmp ecx, 2
jne 0x512b9b
lea ecx, [esi - 0x1f71]
cmp ecx, 0xc
jbe 0x51258e
lea ecx, [esi - 0xf43]
cmp ecx, 0x19
jbe 0x5125a1
lea ecx, [esi - 0xf9d]
cmp ecx, 0x1c
jbe 0x5125b4
lea ecx, [esi - 0x1fbe]
cmp ecx, 0x1d
jbe 0x5125c7
lea ecx, [esi - 0x1fe3]
cmp ecx, 0x1a
jbe 0x5125da
lea ecx, [esi - 0xf69]
cmp ecx, 0x18
jbe 0x5125ed
lea ecx, [esi - 0xfa10]
cmp ecx, 0x12
jbe 0x512600
lea edx, [esi - 0x30f]
mov cl, 2
cmp edx, 0xc
ja 0x5121cf
mov ebp, 0x1005
bt ebp, edx
jb 0x512100
lea edx, [esi - 0x338]
cmp edx, 0xd
ja 0x5121e8
mov ebp, 0x2401
bt ebp, edx
jb 0x512100
lea edx, [esi - 0x374]
cmp edx, 0x13
ja 0x512201
mov ebp, 0x80401
bt ebp, edx
jb 0x512b9b
lea edx, [esi - 0xb3e]
cmp edx, 0x19
ja 0x51221a
mov ebp, 0x3000001
bt ebp, edx
jb 0x512100
lea edx, [esi - 0xdca]
cmp edx, 0x15
ja 0x512233
mov ebp, 0x200021
bt ebp, edx
jb 0x512100
lea edx, [esi - 0x114b0]
cmp edx, 0xd
ja 0x51224c
mov ebp, 0x2401
bt ebp, edx
jb 0x512100
lea edx, [esi - 0x2329]
cmp edx, 2
jb 0x512b9b
cmp esi, 0x93c
je 0x512100
cmp esi, 0x9be
je 0x512100
cmp esi, 0x9d7
je 0x512100
cmp esi, 0x9df
je 0x512b9b
cmp esi, 0xa33
je 0x512b9b
cmp esi, 0xa36
je 0x512b9b
cmp esi, 0xa5e
je 0x512b9b
cmp esi, 0xbbe
je 0x512100
cmp esi, 0xbd7
je 0x512100
cmp esi, 0xc56
je 0x512100
cmp esi, 0xcc2
je 0x512100
cmp esi, 0xd3e
je 0x512100
cmp esi, 0xd57
je 0x512100
cmp esi, 0xf93
je 0x512b9b
cmp esi, 0x102e
je 0x512100
cmp esi, 0x1b35
je 0x512100
cmp esi, 0x1fbb
je 0x512b9b
cmp esi, 0x2126
je 0x512b9b
cmp esi, 0x2adc
je 0x512b9b
cmp esi, 0xfb1d
je 0x512b9b
cmp esi, 0xfb1f
je 0x512b9b
cmp esi, 0xfb3e
je 0x512b9b
cmp esi, 0x110ba
je 0x512100
cmp esi, 0x11127
je 0x512100
cmp esi, 0x1133e
je 0x512100
cmp esi, 0x11357
je 0x512100
cmp esi, 0x115af
je 0x512100
cmp esi, 0x11930
je 0x512100
lea edx, [esi - 0x2f800]
cmp edx, 0x21e
jb 0x512b9b
lea edx, [esi - 0x1d1bb]
cmp edx, 6
jb 0x512b9b
lea edx, [esi - 0x1d15e]
cmp edx, 7
jb 0x512b9b
lea edx, [esi - 0xfb46]
cmp edx, 9
jb 0x512b9b
lea edx, [esi - 0xfb43]
cmp edx, 2
jb 0x512b9b
mov edx, esi
and edx, 0x1ffffe
cmp edx, 0xfb40
je 0x512b9b
lea ebp, [esi - 0xfb38]
cmp ebp, 5
jb 0x512b9b
lea ebp, [esi - 0xfb2a]
cmp ebp, 0xd
jb 0x512b9b
lea ebp, [esi - 0xfa70]
cmp ebp, 0x6a
jb 0x512b9b
lea ebp, [esi - 0xfa2a]
cmp ebp, 0x44
jb 0x512b9b
lea ebp, [esi - 0xfa25]
cmp ebp, 2
jb 0x512b9b
lea ebp, [esi - 0xfa15]
cmp ebp, 0xa
jb 0x512b9b
lea ebp, [esi - 0xf900]
cmp ebp, 0x10e
jb 0x512b9b
cmp edx, 0x212a
je 0x512b9b
cmp edx, 0x2000
je 0x512b9b
cmp edx, 0x1fee
je 0x512b9b
lea ebp, [esi - 0xf75]
cmp ebp, 2
jb 0x512b9b
cmp edx, 0xb5c
je 0x512b9b
lea ebp, [esi - 0xa59]
cmp ebp, 3
jb 0x512b9b
mov ebp, esi
and ebp, 0x1ffff8
cmp ebp, 0x958
je 0x512b9b
cmp edx, 0x9dc
je 0x512b9b
lea ebp, [esi - 0x11a8]
cmp ebp, 0x1b
jb 0x512100
lea ebp, [esi - 0x1161]
cmp ebp, 0x15
jb 0x512100
lea ebp, [esi - 0xcd5]
cmp ebp, 2
jb 0x512100
lea ebp, [esi - 0x653]
cmp ebp, 3
jb 0x512100
cmp edx, 0x330
je 0x512100
lea edx, [esi - 0x32d]
cmp edx, 2
jb 0x512100
lea edx, [esi - 0x323]
cmp edx, 6
jb 0x512100
lea edx, [esi - 0x313]
cmp edx, 2
jb 0x512100
lea edx, [esi - 0x300]
cmp edx, 5
jb 0x512100
lea edx, [esi - 0x306]
cmp edx, 7
jb 0x512100
add esi, 0xffffcf67
cmp esi, 2
jae 0x512102
jmp 0x512100
mov edx, 0x1555
bt edx, ecx
jae 0x51215a
jmp 0x512b9b
mov edx, 0x2108401
bt edx, ecx
jae 0x512169
jmp 0x512b9b
mov edx, 0x10008421
bt edx, ecx
jae 0x512178
jmp 0x512b9b
mov edx, 0x20202801
bt edx, ecx
jae 0x512187
jmp 0x512b9b
mov edx, 0x5400101
bt edx, ecx
jae 0x512196
jmp 0x512b9b
mov edx, 0x1008401
bt edx, ecx
jae 0x5121a5
jmp 0x512b9b
mov edx, 0x50005
bt edx, ecx
jae 0x5121b4
jmp 0x512b9b
test bl, bl
je 0x512ba8
lea eax, [esp + 0xda]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x3a]
mov esi, 0x110000
and dword [eax + 4], 0
and dword [eax], 0
and dword [eax + 0xc], 0
and dword [eax + 8], 0
movzx eax, word [esp + 0xe8]
movsd xmm0, qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xe0]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], edi
mov word [ecx + 0x1c], ax
xor eax, eax
movsd qword [ecx + 0x14], xmm1
movsd qword [ecx + 0xc], xmm0
and dword [esp + 0x38], 0
mov dword [esp + 0x40], 0x110000
and word [esp + 0x44], 0
and word [esp + 0x58], 0
mov byte [esp + 0x5c], al
and dword [esp + 0x60], 0
mov byte [esp + 0x64], al
and dword [esp + 0x68], 0
mov byte [esp + 0x6c], al
and dword [esp + 0x70], 0
mov byte [esp + 0x74], al
and dword [esp + 0x78], 0
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edi
and dword [esp + 0x84], 0
and dword [esp + 0x88], 0
mov byte [esp + 0x8c], al
mov byte [esp + 0x90], al
lea ecx, [esp + 0xd8]
call fcn.0050d41f
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp], esi
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
movzx esi, word [esp + 0x44]
mov ebx, dword [esp + 0x54]
cmp ebp, 1
movzx ecx, si
jne 0x512751
cmp edi, 0x110000
jne 0x512729
cmp eax, ebx
jb 0x512af5
and dword [esp + 0x54], 0
xor ebx, ebx
jmp 0x512748
cmp si, 5
jae 0x512e87
cmp eax, ecx
jb 0x512af1
test si, si
je 0x512746
and word [esp + 0x44], 0
xor esi, esi
and dword [esp + 0x38], 0
xor ebp, ebp
jmp 0x512708
cmp ebp, 2
je 0x512ab6
lea edi, [esp + 0x58]
mov dword [esp + 0x1c], edi
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x5128ae
cmp dword [edi + 0x24], 0
je 0x5128a0
add edi, 0x24
mov ecx, edi
call fcn.0050d41f
mov edi, dword [esp + 0x1c]
cmp eax, 0x110000
je 0x5128a0
cmp byte [edi + 0x34], 0
mov esi, eax
je 0x5127f2
cmp esi, 0x80
lea edi, [esp + 0x1c]
jb 0x512867
mov ebx, esi
add ebx, 0xffff5400
cmp ebx, 0x2ba4
jb 0x51280e
mov ecx, esi
call fcn.005de699
test eax, eax
jne 0x5127d2
mov ecx, esi
call fcn.005de706
test eax, eax
je 0x512867
mov ebp, edx
mov ebx, eax
shl ebp, 2
test ebp, ebp
je 0x512870
mov edx, dword [ebx]
mov ecx, edi
add ebx, 4
call fcn.00510b74
add ebp, 0xfffffffc
jmp 0x5127d9
cmp esi, 0x80
lea edi, [esp + 0x1c]
jb 0x512867
mov ebx, esi
add ebx, 0xffff5400
cmp ebx, 0x2ba4
jae 0x512879
mov eax, ebx
xor edx, edx
mov cx, 0x24c
mov ebp, 0xffff
div cx
or eax, 0x1100
lea ecx, [esp + 0x1c]
and eax, ebp
mov edi, edx
mov edx, eax
call fcn.00510b74
mov eax, edi
xor edx, edx
mov di, 0x1c
lea ecx, [esp + 0x1c]
div di
lea edx, [eax + 0x1161]
and edx, ebp
call fcn.00510b74
mov eax, ebx
xor edx, edx
div di
lea edi, [esp + 0x1c]
test dx, dx
je 0x512870
add edx, 0x11a7
movzx esi, dx
mov ecx, edi
mov edx, esi
call fcn.00510b74
mov edi, dword [esp + 0x1c]
jmp 0x512762
mov ecx, esi
call fcn.005de706
test eax, eax
je 0x512867
mov ebp, edx
mov ebx, eax
shl ebp, 2
test ebp, ebp
je 0x512870
mov edx, dword [ebx]
mov ecx, edi
add ebx, 4
call fcn.00510b74
add ebp, 0xfffffffc
jmp 0x51288b
cmp dword [edi + 8], 0x110000
jne 0x5128b3
mov eax, dword [edi + 0x14]
jmp 0x5128b6
mov esi, dword [edi + 8]
jmp 0x5128df
movzx eax, word [edi]
test eax, eax
je 0x512a79
mov ecx, edi
call fcn.0050d6a0
mov edi, dword [esp + 0x1c]
mov esi, dword [edi + 8]
cmp esi, 0x110000
jne 0x5128d9
mov eax, dword [edi + 0x14]
jmp 0x5128dc
movzx eax, word [edi]
mov dword [edi + 0x30], eax
mov ecx, dword [edi + 0x2c]
cmp esi, 0x110000
jne 0x5128f2
mov ebx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
jmp 0x512901
movzx edx, word [edi]
cmp edx, 5
jae 0x512e64
lea ebx, [edi + 4]
cmp edx, ecx
jbe 0x512e1e
mov edx, dword [ebx + ecx*8 + 4]
inc ecx
cmp ecx, eax
jne 0x512922
cmp esi, 0x110000
mov dword [esp], edx
jne 0x51292a
mov ecx, dword [edi + 0x14]
jmp 0x51292d
mov dword [edi + 0x2c], ecx
jmp 0x5129e3
movzx ecx, word [edi]
sub ecx, eax
lea edx, [edi + 4]
xor ebp, ebp
mov dword [esp + 4], edx
mov dword [esp + 0x10], ecx
cmp ecx, ebp
je 0x5129b8
mov ecx, dword [edi + 0x30]
add ecx, ebp
cmp dword [edi + 8], 0x110000
jne 0x512969
mov edx, dword [edi + 0x14]
cmp edx, ecx
jbe 0x512bef
mov eax, dword [edi + 0x10]
mov bl, byte [eax + ecx*8]
mov esi, dword [eax + ecx*8 + 4]
mov byte [esp + 8], bl
jmp 0x51299e
movzx edx, word [edi]
cmp edx, 5
jae 0x512e64
cmp ecx, edx
jae 0x512bef
mov ebx, dword [esp + 4]
mov al, byte [ebx + ecx*8]
mov esi, dword [ebx + ecx*8 + 4]
xor ecx, ecx
mov byte [esp + 8], al
push 0x7674d0
push 4
push ebx
call fcn.0050dd32
add esp, 0xc
cmp edx, ebp
jbe 0x512e3a
mov cl, byte [esp + 8]
mov byte [eax + ebp*8], cl
mov ecx, dword [esp + 0x10]
mov dword [eax + ebp*8 + 4], esi
inc ebp
jmp 0x51293c
cmp dword [edi + 8], 0x110000
jne 0x5129ce
cmp dword [edi + 0x14], ecx
mov edx, dword [esp]
jb 0x5129db
mov dword [edi + 0x14], ecx
jmp 0x5129db
movzx eax, word [edi]
mov edx, dword [esp]
cmp ecx, eax
jae 0x5129db
mov word [edi], cx
and dword [edi + 0x2c], 0
and dword [edi + 0x30], 0
mov ecx, edx
mov edi, edx
call fcn.005de773
mov ebp, dword [esp + 0x40]
mov ebx, eax
cmp ebp, 0x110000
jne 0x512a0b
test bl, bl
jne 0x512b0a
mov dword [esp + 0x40], edi
jmp 0x51275a
cmp byte [esp + 0x90], 0
je 0x512a30
cmp byte [esp + 0x91], bl
jae 0x512a52
mov ecx, ebp
mov edx, edi
call fcn.005de876
cmp eax, 0x110000
je 0x512a5a
jmp 0x512a49
mov ecx, ebp
mov edx, edi
call fcn.005de876
cmp eax, 0x110000
jne 0x512a49
test bl, bl
jne 0x512a5a
jmp 0x512b4c
mov dword [esp + 0x40], eax
jmp 0x51275a
test bl, bl
je 0x512b31
lea ecx, [esp + 0x44]
mov edx, edi
call fcn.0050dad6
mov byte [esp + 0x90], 1
mov byte [esp + 0x91], bl
jmp 0x51275a
mov dword [esp + 0x38], 2
and dword [esp + 0x3c], 0
xor eax, eax
mov dword [esp], 0x110000
mov ecx, dword [esp + 0x40]
cmp ecx, 0x110000
push 2
pop ebp
je 0x5126f7
mov dword [esp + 0x40], 0x110000
mov esi, 0x110000
mov ebp, ecx
jmp 0x512b52
cmp edi, 0x110000
jne 0x512acc
mov ebp, dword [esp]
cmp eax, ebx
jb 0x512ae1
and dword [esp + 0x54], 0
jmp 0x512b22
mov ebp, dword [esp]
cmp si, 5
jae 0x512e87
cmp eax, ecx
lea edx, [esp + 0x48]
jae 0x512b17
mov esi, ebp
mov ebp, dword [edx + eax*4]
inc eax
mov dword [esp + 0x38], 2
jmp 0x512b04
lea edx, [esp + 0x48]
mov ebp, dword [edx + eax*4]
mov esi, dword [esp]
inc eax
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], eax
jmp 0x512b52
mov eax, dword [esp + 0xc]
mov esi, 0x110000
mov ebp, edi
jmp 0x512b56
test si, si
je 0x512b22
and word [esp + 0x44], 0
mov dword [esp + 0x40], 0x110000
mov esi, 0x110000
jmp 0x512b52
mov dword [esp + 0x40], edi
mov byte [esp + 0x90], 0
mov dword [esp + 0x38], 1
and dword [esp + 0x3c], 0
jmp 0x512b50
mov dword [esp + 0x40], edi
mov esi, edi
mov eax, dword [esp + 0xc]
cmp eax, 0x110000
je 0x512b81
cmp ebp, 0x110000
je 0x512b6d
cmp ebp, eax
je 0x5126dc
lea ecx, [esp + 0x58]
call fcn.0050dbd1
lea ecx, [esp + 0x44]
call fcn.0050dbed
jmp 0x512b9b
lea ecx, [esp + 0x58]
call fcn.0050dbd1
lea ecx, [esp + 0x44]
call fcn.0050dbed
cmp ebp, 0x110000
je 0x512ba8
mov byte [esp + 0xd1], 1
jmp 0x511b0d
mov al, byte [esp + 0x27]
lea ecx, [esp + 0x3a]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x38], al
mov al, byte [esp + 0xaa]
mov byte [esp + 0x39], 0
mov byte [ecx + 2], al
movzx eax, word [esp + 0xa8]
mov word [ecx], ax
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00512fd0
pop eax
pop ecx
jmp 0x511b0d
push 0x752e30
call fcn.0062d3f0
mov eax, dword [esp + 0x148]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push 0x753008
push dword [esp + 0x118]
call fcn.00419492
pop ecx
pop ecx
mov esi, edx
lea ebx, [esp + 0x38]
mov edx, eax
mov ecx, ebx
push esi
call fcn.00512f38
pop eax
lea edi, [esp + 0xec]
mov ecx, ebx
call fcn.0050e52c
test eax, eax
je 0x512ddb
test byte [esp + 0x28], 1
je 0x512c31
mov ebp, edx
lea ecx, [esp + 0xd8]
mov esi, eax
mov dword [esp + 0xd8], eax
add ebp, eax
mov dword [esp + 0xdc], ebp
call fcn.0050d41f
cmp eax, 0x110000
je 0x512c31
mov ecx, eax
call fcn.005de647
test al, al
je 0x512cc2
movzx eax, al
cmp eax, 0x11
je 0x512cc2
cmp eax, 9
jne 0x512dd3
lea ecx, [esp + 0xd8]
call fcn.0050d41f
cmp eax, 0x110000
je 0x512d88
mov ecx, eax
call fcn.005de647
cmp al, 0xe
ja 0x512dd3
movzx eax, al
mov ecx, 0x62f8
bt ecx, eax
jb 0x512c8a
jmp 0x512dd3
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
xor ebx, ebx
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
xor ecx, ecx
mov byte [esp + 8], cl
mov ecx, edi
call fcn.0050d41f
cmp eax, 0x110000
je 0x512d2e
mov ecx, eax
call fcn.005de647
mov cl, 1
cmp al, 5
je 0x512ce2
cmp al, 1
movzx ebx, bl
mov ecx, 1
cmove ebx, ecx
cmp al, 0x11
ja 0x512dd3
movzx eax, al
mov ecx, 0x260fb
bt ecx, eax
mov cl, byte [esp + 8]
mov ecx, ecx
jb 0x512ce2
jmp 0x512dd3
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], ebp
mov ecx, edi
call fcn.00512f5e
cmp eax, 0x110000
je 0x512dd3
mov ecx, eax
mov esi, eax
call fcn.005de647
cmp al, 0xd
je 0x512d3c
mov ecx, esi
call fcn.005de647
cmp al, 0x11
ja 0x512dd3
movzx eax, al
mov ecx, 0x20023
bt ecx, eax
jae 0x512dd3
test bl, 1
je 0x512d7f
cmp byte [esp + 8], 0
jne 0x512dd3
lea ebx, [esp + 0x38]
jmp 0x512c31
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], ebp
mov ecx, edi
call fcn.00512f5e
cmp eax, 0x110000
je 0x512c31
mov ecx, eax
mov esi, eax
call fcn.005de647
cmp al, 0xd
je 0x512d96
mov ecx, esi
call fcn.005de647
cmp al, 9
je 0x512c31
mov ecx, esi
call fcn.005de647
cmp al, 5
je 0x512c31
mov byte [esp + 0xce], 1
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x118]
movsd xmm0, qword [esp + 0xcc]
test edx, edx
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
je 0x512e13
mov ecx, dword [esp + 0xc0]
shl edx, 3
call fcn.0050dc09
add esp, 0x128
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x752e20
call fcn.0062d3f0
push 0x19
pop edx
mov ecx, str.attempt_to_divide_by_zero
push 0x752ef4
call fcn.0062d4b0
mov ecx, ebp
jmp 0x51172f
mov ecx, dword [esp + 0xb4]
mov edx, ecx
push 0x7896fc
call fcn.0062d3f0
mov edx, dword [esp + 0x18]
mov ecx, ebx
push 0x78970c
call fcn.0062d3f0
push 4
pop eax
mov ecx, edx
mov edx, eax
push 0x7674c0
call fcn.0062d450
push 0x19
pop edx
mov ecx, str.attempt_to_divide_by_zero
push 0x752f04
call fcn.0062d4b0
push 4
pop edx
jmp 0x512e6b
lea ecx, [esp + 0x38]
mov edx, 0x7897ac
jmp 0x512ea0
lea ecx, [esp + 0x38]
mov edx, 0x7897ec
mov dword [ecx], 0x78934c
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
call fcn.0062d360
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0x789828
call fcn.0062d4b0
mov ecx, 0x7897dc
call fcn.0062d7f0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 4]
push 0x752ed4
push ebp
push 0
call fcn.0062d9d0
mov ecx, edi
mov edx, ebx
push 0x752ee4
push ebx
push ebp
call fcn.0062d9d0
mov ecx, 0x7897bc
call fcn.0062d7f0
mov ecx, 0x7897cc
call fcn.0062d7f0
nop
jl 0x512f1b
add byte [eax], al
leave
add cl, cl
add byte [eax], al
add byte [esi], bh
add dword [eax], eax
add byte [ecx], ch
add dword [eax], eax
add byte [ebx + 1], dh
add byte [eax], al
add dword gs:[eax], eax
add byte [ecx], dh
add dword [eax], eax
add byte [edi + 1], dl
add byte [eax], al