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

Disassembly:
push 0xffffffffffffffff
push 0x4f829c
mov eax, dword fs:[0]
push eax
mov eax, 0x1d618
call fcn.004e3510
mov eax, dword [0x514bc0]
xor eax, esp
mov dword [esp + 0x1d614], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x514bc0]
xor eax, esp
push eax
lea eax, [esp + 0x1d62c]
mov dword fs:[0], eax
mov edi, dword [esp + 0x1d63c]
xor eax, eax
mov ebp, ecx
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], eax
cmp word [ecx + 0x1010], ax
je 0x42768d
push 0x4fe984
push edi
call fcn.00451c30
test al, al
jne 0x42768d
push 0x4fe97c
push edi
call fcn.00451c30
test al, al
jne 0x42768d
push 0x4fe974
push edi
call fcn.00451c30
mov esi, dword [esp + 0x1d640]
test al, al
jne 0x427686
push esi
push 0x4fe968
push edi
call fcn.004675f0
push esi
push edi
call fcn.004526c0
mov edx, dword [ebp + 0x38]
cmp byte [edx + 0x6198], 0
je 0x42769f
push edi
call fcn.004441c0
xor eax, eax
mov word [esp + 0x1c5a8], ax
mov eax, dword [ebp + 0x38]
xor ecx, ecx
mov word [esp + 0x1c628], cx
mov edx, dword [eax + 0x6160]
or edx, dword [eax + 0x6164]
je 0x4276cd
mov byte [ebp + 0x225c], 1
jmp 0x4276d4
and dword [eax + 0x6148], 0xffffffe7
mov eax, dword [ebp + 0x38]
mov byte [esp + 0x16], cl
push eax
lea ecx, [esp + 0x38]
call fcn.004293c0
xor esi, esi
mov dword [esp + 0x1d634], esi
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x16]
push ecx
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, ebp
call fcn.00425490
mov ecx, dword [ebp + 0x38]
push ecx
lea ecx, [esp + 0xf374]
call fcn.0042c460
mov byte [esp + 0x1d634], 1
mov edx, dword [ebp + 0x38]
push edx
lea ecx, [esp + 0x213c]
call fcn.0042c460
mov byte [esp + 0x1d634], 2
xor ebx, ebx
xor edi, edi
cmp dword [esp + 0x44], ebx
jbe 0x4277dd
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
cmp dword [eax + 0x2c], 2
je 0x427762
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
cmp dword [eax + 0x2c], 3
jne 0x4277d2
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
mov ecx, dword [eax + 0xc]
cmp ecx, edi
jb 0x42778c
ja 0x42777c
mov edx, dword [eax + 8]
cmp edx, ebx
jbe 0x42778c
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
mov ebx, dword [eax + 8]
mov edi, dword [eax + 0xc]
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
mov ecx, dword [eax + 8]
add dword [esp + 0xe358], ecx
mov edx, dword [eax + 0xc]
push esi
adc dword [esp + 0xe360], edx
lea ecx, [esp + 0x38]
call fcn.00429130
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x213c]
call fcn.004298b0
add dword [esp + 0xe360], eax
adc dword [esp + 0xe364], 0
inc esi
cmp esi, dword [esp + 0x44]
jb 0x427742
lea ecx, [esp + 0x15]
push ecx
lea edx, [esp + 0x38]
push edx
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x2140]
push eax
lea ecx, [esp + 0xf37c]
push ecx
push edx
mov ecx, ebp
mov byte [esp + 0x29], 0
call fcn.00426220
test al, al
je 0x428c60
mov eax, dword [esp + 0xe320]
mov ecx, dword [ebp + 0x38]
push eax
call fcn.00438c20
xor esi, esi
cmp dword [esp + 0x44], esi
jbe 0x427874
jmp 0x427830
mov ecx, dword [ebp + 0x38]
cmp byte [ecx + 0x6153], 0
je 0x42784c
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
cmp dword [eax + 0x2c], 2
je 0x42785c
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
cmp dword [eax + 0x2c], 1
jne 0x42786d
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
mov dword [eax + 0x2c], 0
inc esi
cmp esi, dword [esp + 0x44]
jb 0x427830
cmp dword [esp + 0xf374], 0xffffffff
mov ecx, dword [ebp + 0x38]
setne al
cmp word [ecx + 0x73b0], 0
mov byte [esp + 0x19], al
jne 0x427918
test al, al
je 0x4278a2
cmp byte [esp + 0x1b55c], 0
jne 0x427918
cmp byte [esp + 0x16], 0
jne 0x427918
mov eax, dword [ecx + 0x6148]
test eax, eax
je 0x4278c3
mov edx, dword [esp + 0xe358]
mov esi, dword [esp + 0xe35c]
jmp 0x4278c7
mov edx, ebx
mov esi, edi
neg eax
sbb eax, eax
and eax, 0xe0000
add eax, 0x20000
cmp dword [ecx + 0xc], eax
jbe 0x427918
push 0
push 2
push esi
push edx
call fcn.004e4480
mov ecx, dword [ebp + 0x38]
mov edi, dword [ecx + 0xc]
xor esi, esi
cmp esi, edx
jb 0x427918
ja 0x4278f7
cmp edi, eax
jbe 0x427918
shr dword [ecx + 0xc], 1
mov ecx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x6148]
neg esi
sbb esi, esi
and esi, 0xe0000
add esi, 0x20000
cmp dword [ecx + 0xc], esi
ja 0x4278e5
cmp dword [esp + 0xe320], 2
mov ecx, 0x400000
jne 0x427932
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0xc], ecx
jbe 0x427932
mov dword [eax + 0xc], ecx
mov eax, dword [ebp + 0x38]
xor ebx, ebx
cmp dword [eax + 0x6134], ebx
jne 0x42794c
mov ecx, 0x20000
cmp dword [eax + 0xc], ecx
jbe 0x42794c
mov dword [eax + 0xc], ecx
mov esi, 3
cmp dword [esp + 0xe320], esi
jne 0x42796d
mov eax, dword [ebp + 0x38]
cmp byte [eax + 0x619c], 0
je 0x42796d
mov byte [eax + 0x619c], 0
cmp byte [esp + 0xe324], 0
je 0x427987
mov edx, dword [ebp + 0x38]
cmp byte [edx + 0x617d], 0
jne 0x427987
mov al, 1
jmp 0x427989
xor al, al
push ebx
push eax
lea ecx, [esp + 0x3c]
call fcn.004297f0
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0x61a0], ebx
je 0x4279d6
cmp dword [esp + 0xe320], esi
jne 0x4279d6
lea ecx, [esp + 0x60]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], 0x79
call fcn.004693c0
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebp
call fcn.00424f30
mov ecx, dword [ebp + 0x3c]
cmp ecx, ebx
je 0x4279e5
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
cmp byte [esp + 0x19], 0
je 0x427a1f
cmp dword [esp + 0x1b558], esi
je 0x427a2b
push 0x1b498
call fcn.004e4838
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1d634], 4
cmp eax, ebx
je 0x427a55
lea ecx, [ebp + 0x58]
push ecx
mov ecx, eax
call fcn.00450370
jmp 0x427a57
mov ecx, dword [ebp + 0x38]
cmp byte [ecx + 0x6197], 0
je 0x4279f5
push 0x6228
call fcn.004e4838
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1d634], 3
cmp eax, ebx
je 0x427a55
lea edx, [ebp + 0x58]
push edx
mov ecx, eax
call fcn.00449800
jmp 0x427a57
xor eax, eax
mov byte [esp + 0x1d634], 2
mov edx, dword [ebp + 0x38]
mov dword [ebp + 0x3c], eax
mov dword [edx + 0xa3c8], eax
mov esi, dword [ebp + 0x40]
cmp esi, ebx
je 0x427a82
mov ecx, esi
call fcn.00470d40
push esi
call fcn.004e3756
add esp, 4
push 0xe6e8
call fcn.004e4838
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1d634], 5
cmp eax, ebx
je 0x427aac
lea ecx, [ebp + 0x58]
push ecx
mov ecx, eax
call fcn.00473a80
jmp 0x427aae
xor eax, eax
mov byte [esp + 0x1d634], 2
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x38]
mov edx, dword [ecx]
mov eax, dword [eax + 0x83b0]
mov edx, dword [edx + 0x20]
push eax
call edx
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + 0x83b0]
mov ecx, dword [ebp + 0x40]
cmp eax, 8
jb 0x427ae3
mov eax, 8
mov dword [ecx + 0x1c], eax
mov ecx, dword [ebp + 0x38]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov esi, eax
push eax
mov eax, dword [edx + 4]
call eax
test al, al
jne 0x427b26
mov edi, 0x100000
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0xc], edi
jbe 0x427be5
shr dword [eax + 0xc], 1
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x38]
mov edx, dword [ecx]
mov eax, dword [eax + 0xc]
mov edx, dword [edx + 4]
push eax
call edx
test al, al
je 0x427b02
mov ecx, dword [ebp + 0x38]
mov eax, dword [ecx + 0xc]
cmp esi, eax
je 0x427b6a
shr eax, 0x14
shr esi, 0x14
lea ecx, [esp + 0x60]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa8], 0x28
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], eax
mov dword [esp + 0xa4], 2
call fcn.004693c0
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
lea esi, [ebp + 8]
push esi
call eax
cmp byte [esp + 0x1b55c], 0
lea eax, [ebp + 0x58]
mov dword [esi + 0x24], ebp
mov ecx, dword [ebp + 0x38]
mov dword [esi + 0x2c], eax
lea edx, [esp + 0xf370]
lea eax, [esp + 0x2138]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], eax
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
je 0x427c3c
mov ecx, dword [ebp + 0x38]
cmp byte [ecx + 0x5124], 0
jne 0x427bcf
cmp byte [esp + 0x15], 0
je 0x427c1c
mov edx, dword [ebp + 0x48]
add dword [esp + 0xe358], edx
mov eax, dword [ebp + 0x4c]
adc dword [esp + 0xe35c], eax
jmp 0x427c21
push 1
push 0x512c38
lea ecx, [esp + 0x58]
call fcn.004e6a19
mov byte [esp + 0x1d634], 6
mov dword [esp + 0x50], vtable.std::bad_alloc.0
mov byte [esp + 0x1d634], 2
push 0x50a850
lea eax, [esp + 0x54]
push eax
call fcn.004e4a7d
mov byte [esp + 0x16], 1
push ebx
lea ecx, [esp + 0xf374]
call fcn.0042e7e0
push edx
push eax
lea ecx, [esp + 0xf37c]
call fcn.00429d10
xor edi, edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov byte [esp + 0x1d634], 7
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x44], ebx
jbe 0x428a35
jmp 0x427c80
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x38]
call fcn.00429130
mov esi, eax
mov ecx, 0x14
lea edi, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x8c]
cmp eax, ebx
je 0x428a1b
lea ebx, [ebx]
cmp eax, 6
je 0x4285a6
cmp eax, 5
je 0x4286ab
cmp eax, 4
je 0x4286b9
push ebx
lea ecx, [esp + 0x98bc]
call fcn.00446620
lea ecx, [esp + 0x1114]
mov dword [esp + 0x10dc], ebx
mov dword [esp + 0x10e0], ebx
mov dword [esp + 0x10e4], ebx
mov dword [esp + 0x10e8], ebx
mov dword [esp + 0x10ec], ebx
mov dword [esp + 0x10f0], ebx
call fcn.004426b0
mov byte [esp + 0x1d634], 8
cmp byte [esp + 0xad], 0
je 0x427d59
cmp dword [esp + 0xe320], 3
jne 0x427d59
mov edx, dword [ebp + 0x38]
cmp byte [edx + 0x6189], 0
mov bl, 1
je 0x427d5b
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x98b8]
push eax
push ecx
call fcn.0043fcd0
xor edi, edi
cmp dword [esp + 0xa9a8], edi
jne 0x427d5d
xor bl, bl
jmp 0x427d5d
xor bl, bl
xor edi, edi
mov al, byte [esp + 0xac]
test al, al
jne 0x427d7e
test bl, bl
je 0x427d77
mov edx, dword [ebp + 0x38]
cmp byte [edx + 0x6189], al
jne 0x427d7e
mov byte [esp + 0x1a], 0
jmp 0x427d97
mov byte [esp + 0x1a], 1
test al, al
je 0x427d97
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0x6158], 1
je 0x428a05
mov eax, dword [ebp + 0x38]
mov esi, dword [esp + 0x60]
cmp word [eax + 0x73b0], di
jne 0x427deb
movzx ecx, byte [eax + 0x6189]
push ecx
lea edx, [esp + 0xd0]
push edx
push esi
call fcn.004458a0
cmp byte [esp + 0xac], 0
mov bl, al
mov byte [esp + 0x15], bl
je 0x427dfc
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x10ec], eax
mov dword [esp + 0x10f0], ecx
jmp 0x427dfc
xor bl, bl
mov byte [esp + 0x15], bl
mov dword [esp + 0x1120], 1
mov cl, byte [esp + 0x1a]
test cl, cl
jne 0x427fb1
mov eax, dword [ebp + 0x38]
cmp word [eax + 0x73b0], di
jne 0x427fb1
test bl, bl
je 0x427e38
movzx edx, byte [eax + 0x6195]
neg edx
sbb edx, edx
and edx, 4
push edx
push esi
lea ecx, [esp + 0x111c]
call fcn.00442730
cmp dword [esp + 0x1118], 0xffffffff
jne 0x427eda
mov eax, dword [esp + 0x2c]
push esi
push eax
mov ecx, 0x52c138
call fcn.0043e010
mov ecx, dword [esp + 0x68]
sub dword [esp + 0xe358], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
sbb dword [esp + 0xe35c], edx
push eax
lea ecx, [esp + 0x38]
call fcn.00429130
inc dword [esp + 0x20]
cmp dword [esp + 0x9c], edi
mov dword [eax + 0x2c], edi
jl 0x428a05
jg 0x427e9d
cmp dword [esp + 0x98], edi
jbe 0x428a05
cmp dword [esp + 0xa4], edi
jne 0x428a05
mov dword [esp + 0x8c], 4
mov dword [ebp + 0x44], edi
mov byte [esp + 0x1d634], 7
lea ecx, [esp + 0x1114]
call fcn.00442e00
mov eax, dword [esp + 0x8c]
xor ebx, ebx
jmp 0x427cb0
test bl, bl
je 0x427f2b
test dword [esp + 0x10d4], 0x400
mov ecx, dword [esp + 0x10dc]
mov edx, dword [esp + 0x10e0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
je 0x427f2b
mov eax, dword [esp + 0x10cc]
or eax, dword [esp + 0x10d0]
jne 0x427f2b
lea ecx, [esp + 0x1114]
call fcn.00443060
mov dword [esp + 0x10cc], eax
mov dword [esp + 0x10d0], edx
cmp byte [esp + 0xad], 0
jne 0x427fcd
mov ecx, dword [ebp + 0x38]
cmp byte [ecx + 0x618a], 0
je 0x427fcd
cmp dword [esp + 0xe320], 3
jne 0x427fcd
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0xb8]
mov dword [esp + 0xc8], edx
push ecx
lea edx, [esp + 0x111c]
push edx
mov ecx, ebp
call fcn.00424cf0
test al, al
je 0x427fcd
mov ecx, dword [esp + 0xc4]
push 0x800
lea eax, [esp + 0xa9b0]
push eax
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0xa9b4], 4
call fcn.00429130
mov edx, dword [ebp + 0x38]
push eax
push edx
jmp 0x42802d
cmp byte [esp + 0xad], 0
jne 0x427fc9
mov dword [esp + 0x10cc], edi
mov dword [esp + 0x10d0], edi
test cl, cl
jne 0x428037
mov esi, dword [esp + 0xa8]
cmp esi, 0xffffffff
je 0x428037
cmp dword [esp + 0x1118], 0xffffffff
je 0x427fef
lea ecx, [esp + 0x1114]
call fcn.00442a00
push esi
lea ecx, [esp + 0x38]
call fcn.00429130
mov eax, dword [eax + 0x2c]
cmp eax, 2
je 0x428006
cmp eax, 3
jne 0x428037
push 0x800
lea eax, [esp + 0xa9b0]
push eax
push esi
lea ecx, [esp + 0x40]
mov dword [esp + 0xa9b4], 5
call fcn.00429130
mov ecx, dword [ebp + 0x38]
push eax
push ecx
call fcn.004238c0
mov byte [esp + 0x1a], 1
mov edx, dword [esp + 0x60]
push edx
push 1
mov ecx, 0x52c148
call fcn.004468f0
mov edx, dword [ebp + 0x38]
push 0x800
lea eax, [esp + 0x98dc]
push eax
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.004238c0
cmp byte [esp + 0x17], 0
je 0x4280cc
lea ecx, [esp + 0xf370]
call fcn.00429d50
push 0
lea ecx, [esp + 0xf374]
mov esi, eax
mov edi, edx
call fcn.0042e7e0
push edx
push eax
lea ecx, [esp + 0xf37c]
call fcn.00429d10
mov eax, dword [ebp + 0x40]
push 0
push eax
push edi
push esi
lea ecx, [esp + 0xf380]
push ecx
mov ecx, ebp
call fcn.00425c80
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + 0x6134]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
dec eax
push eax
mov eax, dword [ebp + 0x40]
push eax
call edx
mov byte [ebp + 0x54], 1
xor edi, edi
cmp byte [esp + 0xe324], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x16], 0
je 0x4281ff
mov eax, dword [ebp + 0x38]
mov ecx, dword [eax + 0x6148]
mov byte [esp + 0x18], 0
test cl, 2
je 0x428115
mov esi, dword [eax + 0x614c]
cmp esi, edi
jle 0x428115
mov eax, dword [esp + 0x28]
cmp eax, edi
jle 0x428115
cdq
idiv esi
test edx, edx
jne 0x428115
mov byte [esp + 0x18], 1
test cl, 4
je 0x428160
lea eax, [esp + 0x98d8]
push eax
call fcn.00451c10
mov esi, eax
cmp esi, edi
je 0x428156
lea ecx, [esp + 0x1c5a8]
push ecx
push esi
call fcn.00467520
test eax, eax
je 0x428144
mov byte [esp + 0x18], 1
push 0x40
push esi
lea edx, [esp + 0x1c5b0]
push edx
call fcn.00467570
jmp 0x428160
xor eax, eax
mov word [esp + 0x1c5a8], ax
mov ecx, dword [ebp + 0x38]
mov ebx, dword [ecx + 0x6148]
test bl, 8
jne 0x4281c6
lea ecx, [esp + 0x2156]
lea eax, [esp + 0x1c628]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4281a6
cmp dx, di
je 0x4281a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4281a6
add eax, 4
add ecx, 4
cmp dx, di
jne 0x428180
xor eax, eax
jmp 0x4281ab
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4281c6
test bl, 0x10
jne 0x4281cd
cmp dword [esp + 0x54], edi
jg 0x4281cd
jl 0x4281c6
cmp dword [esp + 0x50], 0x400000
ja 0x4281cd
cmp byte [esp + 0x18], 0
je 0x4281eb
cmp dword [esp + 0x28], edi
jle 0x4281eb
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov byte [ebp + 0x54], 0
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
jmp 0x4281fb
mov ecx, dword [esp + 0x68]
add dword [esp + 0x50], ecx
mov edx, dword [esp + 0x6c]
adc dword [esp + 0x54], edx
mov bl, byte [esp + 0x15]
push 0x800
lea eax, [esp + 0x215a]
push eax
lea ecx, [esp + 0x1c630]
push ecx
call fcn.00467570
mov ecx, dword [esp + 0x60]
mov esi, 3
cmp dword [esp + 0x8c], esi
push edi
sete dl
push edi
movzx eax, dl
push eax
push ecx
push 1
call fcn.00468fe0
mov eax, dword [ebp + 0x38]
cmp word [eax + 0x73b0], di
jne 0x428256
mov edx, dword [esp + 0x10dc]
or edx, dword [esp + 0x10e0]
jne 0x428278
mov dword [esp + 0x10cc], edi
mov dword [esp + 0x10d0], 0x7fffffff
mov byte [esp + 0xa9a1], 1
mov byte [esp + 0xa942], 1
mov ecx, dword [esp + 0x10cc]
mov edx, dword [esp + 0x10d0]
mov dword [esp + 0x98bc], 2
mov dword [esp + 0xa908], ecx
mov dword [esp + 0xa90c], edx
mov dword [esp + 0xa900], edi
mov dword [esp + 0xa904], edi
cmp dword [esp + 0xe320], esi
jne 0x4282be
mov esi, dword [eax + 0x6138]
jmp 0x4282c3
mov esi, 2
push esi
lea ecx, [esp + 0xa91c]
call fcn.00446170
mov eax, dword [ebp + 0x38]
cmp byte [eax + 0x5124], 0
je 0x428375
cmp byte [esp + 0xac], 0
jne 0x428375
cmp dword [esp + 0xe320], 3
jne 0x42832d
push 0x10
lea ecx, [esp + 0xa95d]
push ecx
call fcn.0043b530
xor edx, edx
cmp byte [esp + 0xe32c], dl
mov dword [esp + 0xa994], 0xf
sete dl
mov byte [esp + 0xa969], 1
mov byte [esp + 0xa972], dl
mov eax, dword [esp + 0xe336]
mov ecx, dword [esp + 0xe33a]
mov edx, dword [esp + 0xe33e]
mov dword [esp + 0xa949], eax
mov eax, dword [esp + 0xe342]
mov byte [esp + 0xa943], 1
mov byte [esp + 0xa948], 1
mov dword [esp + 0xa94d], ecx
mov dword [esp + 0xa951], edx
mov dword [esp + 0xa955], eax
mov ecx, dword [esp + 0xe320]
mov edx, dword [ebp + 0x38]
sub ecx, 3
neg ecx
sbb ecx, ecx
and ecx, 0x1d
cmp byte [ebp + 0x54], 0
mov byte [esp + 0x98d1], cl
mov eax, dword [edx + 0xc]
mov dword [esp + 0xa99c], eax
mov byte [esp + 0xa999], 0
je 0x4283b0
mov byte [esp + 0xa998], 1
test bl, bl
je 0x42840a
mov ecx, dword [esp + 0x10dc]
mov edx, dword [esp + 0x10e0]
mov eax, dword [esp + 0x10ec]
mov dword [esp + 0xa8e8], ecx
mov ecx, dword [esp + 0x10f0]
mov dword [esp + 0xa8ec], edx
mov edx, dword [esp + 0x10e4]
mov dword [esp + 0xa8f8], eax
mov eax, dword [esp + 0x10e8]
mov dword [esp + 0xa8fc], ecx
mov dword [esp + 0xa8f0], edx
mov dword [esp + 0xa8f4], eax
jmp 0x428432
lea ecx, [esp + 0xa8e8]
call fcn.004689a0
mov dword [esp + 0xa8f8], edi
mov dword [esp + 0xa8fc], edi
mov dword [esp + 0xa8f0], edi
mov dword [esp + 0xa8f4], edi
mov ecx, dword [esp + 0xe320]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x98d4], eax
cmp ecx, 2
je 0x428452
cmp dword [esp + 0xa9a8], edi
jne 0x42845e
and eax, 0xfffffbff
mov dword [esp + 0x98d4], eax
cmp dword [esp + 0xa90c], edi
movzx edx, byte [esp + 0xac]
mov eax, dword [ebp + 0x38]
mov byte [esp + 0xa999], dl
movzx edx, byte [eax + 0x6134]
mov byte [esp + 0x98d2], dl
jg 0x42849b
jl 0x428496
cmp dword [esp + 0xa908], 0x80000000
ja 0x42849b
cmp ecx, 3
jne 0x4284a3
mov byte [esp + 0xa9a1], 1
mov eax, dword [eax + 0x83b0]
push eax
push esi
lea ecx, [ebp + 0x2e14]
call fcn.004462a0
lea ecx, [esp + 0x2138]
push ecx
lea edx, [esp + 0x1118]
lea esi, [ebp + 0x58]
push edx
mov ecx, esi
mov dword [esp + 0xa9ac], edi
call fcn.004579f0
cmp byte [esp + 0x1a], 0
mov eax, dword [esp + 0x10cc]
mov dword [esp + 0xa910], eax
mov edx, dword [esp + 0x10d0]
mov byte [ebp + 0xa8], 1
mov dword [ebp + 0x2268], edi
mov dword [ebp + 0x226c], edi
mov dword [esp + 0xa914], edx
jne 0x4288cf
mov ecx, dword [ebp + 0x38]
cmp word [ecx + 0x73b0], di
jne 0x4288cf
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x22]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.00457910
cmp byte [esp + 0x1e], 0
je 0x4287e9
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x2c]
push edx
push eax
mov ecx, 0x52c138
call fcn.0043e010
mov ecx, dword [esp + 0x68]
sub dword [esp + 0xe358], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
sbb dword [esp + 0xe35c], edx
push eax
lea ecx, [esp + 0x38]
call fcn.00429130
inc dword [esp + 0x20]
cmp dword [esp + 0x9c], edi
mov dword [eax + 0x2c], edi
jl 0x428a05
jg 0x427eaa
cmp dword [esp + 0x98], edi
jbe 0x428a05
jmp 0x427eaa
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
push ebx
push ecx
push edx
lea ecx, [esp + 0xf37c]
call fcn.00429d10
lea ecx, [esp + 0xf370]
call fcn.00431220
mov eax, dword [esp + 0x15904]
cmp eax, 2
je 0x428652
cmp eax, 3
je 0x42865b
mov al, byte [esp + 0x1b564]
cmp al, byte [esp + 0xe32c]
jne 0x428a1b
mov ecx, dword [esp + 0x1b54c]
mov edx, dword [esp + 0x1b548]
push ebx
push ecx
push edx
lea ecx, [esp + 0xf37c]
call fcn.00429d10
mov eax, dword [esp + 0x1b550]
sub eax, dword [esp + 0x1b548]
mov ecx, dword [esp + 0x1b554]
sbb ecx, dword [esp + 0x1b54c]
lea edx, [esp + 0x2138]
push ecx
push eax
push edx
lea ecx, [esp + 0xf37c]
call fcn.00443320
jmp 0x428a1b
lea ecx, [esp + 0x16af0]
jmp 0x428662
lea ecx, [esp + 0x18e30]
push ebx
push ebx
push ecx
push eax
lea ecx, [esp + 0x2148]
call fcn.0042c7d0
lea ecx, [esp + 0xf370]
call fcn.00429d50
mov ecx, dword [esp + 0x1b550]
sub ecx, eax
mov eax, dword [esp + 0x1b554]
sbb eax, edx
push eax
push ecx
lea ecx, [esp + 0x2140]
push ecx
lea ecx, [esp + 0xf37c]
call fcn.00443320
jmp 0x428a1b
inc dword [esp + 0x5c]
call fcn.00467c40
jmp 0x428a1b
cmp byte [esp + 0x1b55c], 0
je 0x428720
cmp byte [esp + 0x16], 0
jne 0x428720
mov edx, dword [ebp + 0x40]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
push ebx
push edx
push eax
push ecx
lea edx, [esp + 0xf380]
push edx
mov ecx, ebp
call fcn.00425c80
mov eax, dword [esp + 0xa4]
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp + 0x3c]
push eax
push ebx
push ecx
push edx
lea eax, [esp + 0x2148]
push eax
lea ecx, [esp + 0xf384]
push ecx
mov ecx, ebp
call fcn.00426b80
call fcn.00467c40
jmp 0x428a1b
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
push ebx
push ecx
push edx
lea ecx, [esp + 0xf37c]
call fcn.00429d10
lea ecx, [esp + 0xf370]
call fcn.00431220
lea eax, [esp + 0x16af0]
push eax
lea ecx, [esp + 0x98bc]
call fcn.00446700
mov eax, dword [esp + 0xa4]
cmp eax, ebx
je 0x428782
push eax
lea ecx, [esp + 0x98bc]
push ecx
mov ecx, ebp
call fcn.00423ae0
lea ecx, [esp + 0xf370]
call fcn.0042e700
test al, al
jne 0x42879d
mov dl, byte [esp + 0x1b55c]
mov byte [esp + 0x17], dl
cmp byte [esp + 0x17], 0
je 0x4287ba
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + 0xc]
cmp eax, dword [esp + 0xa99c]
jbe 0x4287ba
mov dword [esp + 0xa99c], eax
push ebx
push ebx
push ebx
push 2
lea ecx, [esp + 0x2148]
call fcn.0042c7d0
lea ecx, [esp + 0xf370]
push ecx
lea ecx, [esp + 0x213c]
call fcn.00429b80
call fcn.00467c40
jmp 0x428a1b
cmp byte [esp + 0x1f], 0
je 0x428847
mov ecx, dword [esp + 0x10d0]
mov edx, dword [esp + 0x30]
xor eax, eax
cmp ecx, eax
mov eax, dword [esp + 0x10cc]
ja 0x42882c
jb 0x42880e
cmp eax, edx
jae 0x42882c
mov byte [esp + 0xb0], 1
mov edx, dword [esp + 0xb0]
push edx
push 1
push ecx
push eax
call fcn.00423b80
jmp 0x4288c1
mov byte [esp + 0xb0], 0
mov edx, dword [esp + 0xb0]
push edx
push 1
push ecx
push eax
call fcn.00423b80
jmp 0x4288c1
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov esi, ecx
push esi
mov dword [esp + 0x10d0], eax
mov edi, eax
add eax, 0x200
mov dword [esp + 0x10d4], ecx
push 2
adc ecx, ecx
push ecx
push eax
call fcn.004e4480
mov ebx, eax
cmp edx, esi
ja 0x428883
jb 0x42887c
cmp ebx, edi
jae 0x428883
xor ebx, ebx
mov edx, 0x40000000
mov esi, 1
xor edi, edi
lea ebx, [ebx]
mov eax, esi
add eax, 0xffffffff
mov ecx, edi
adc ecx, 0xffffffff
cmp edx, ecx
jb 0x4288b3
ja 0x4288a4
cmp ebx, eax
jb 0x4288b3
shld edi, esi, 7
shl esi, 7
mov eax, esi
or eax, edi
jne 0x428890
jmp 0x4288bd
add esi, 0xffffffff
adc edi, 0xffffffff
mov ebx, esi
mov edx, edi
mov eax, ebx
xor edi, edi
mov dword [esp + 0xa910], eax
mov dword [esp + 0xa914], edx
mov ecx, dword [esp + 0xe320]
inc dword [esp + 0x28]
cmp ecx, 3
jne 0x4288eb
mov dword [ebp + 0x2298], eax
mov dword [ebp + 0x229c], edx
test byte [esp + 0xa0], 1
jne 0x428904
mov edx, dword [ebp + 0x38]
cmp dword [edx + 0x6134], edi
je 0x428904
xor bl, bl
jmp 0x428906
mov bl, 1
cmp byte [esp + 0x1a], 0
jne 0x428911
test bl, bl
je 0x428936
mov eax, dword [ebp + 0x38]
mov byte [esp + 0x98d2], 0
cmp byte [eax + 0x5124], 0
jne 0x428932
cmp ecx, 3
je 0x428932
mov byte [esp + 0x98d1], 0x14
test bl, bl
jne 0x428962
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
xor ecx, ecx
add eax, dword [esp + 0xa908]
adc ecx, dword [esp + 0xa90c]
mov dword [esp + 0xc8], ecx
js 0x42896c
jg 0x428962
cmp eax, 0x8000
jbe 0x42896c
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x1a]
mov edx, dword [esp + 0x60]
mov eax, dword [ebp + 0x3c]
push ecx
push 1
push edx
push eax
lea ecx, [esp + 0x1124]
push ecx
lea esi, [ebp + 8]
mov ecx, esi
call fcn.00426960
cmp byte [esp + 0x1a], 0
jne 0x4289e9
test bl, bl
je 0x4289ba
push edi
mov ecx, esi
call fcn.00426a20
lea eax, [ebp + 0x58]
push eax
call fcn.00424c40
push edi
mov ecx, esi
call fcn.00425860
mov dword [esi + 8], edi
mov dword [esi + 4], edi
jmp 0x4289e9
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
lea esi, [eax + 0x62dc]
mov eax, dword [eax + 0x6134]
push esi
dec eax
push eax
movzx eax, byte [ebp + 0x54]
push eax
call edx
cmp byte [esp + 0xe324], 0
je 0x4289f3
mov byte [ebp + 0x54], 1
cmp byte [esp + 0xe324], 0
jne 0x4289fd
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
call fcn.00467c40
mov dword [ebp + 0x28], edi
mov byte [esp + 0x1d634], 7
lea ecx, [esp + 0x1114]
call fcn.00442e00
xor ebx, ebx
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x44]
jb 0x427c80
mov edi, dword [esp + 0xb4]
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
mov eax, dword [ebp + 0x38]
mov dword [eax + 0xa3c8], ebx
mov ecx, dword [ebp + 0x3c]
cmp ecx, ebx
je 0x428a57
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov esi, dword [ebp + 0x40]
mov dword [ebp + 0x3c], ebx
cmp esi, ebx
je 0x428a71
mov ecx, esi
call fcn.00470d40
push esi
call fcn.004e3756
add esp, 4
mov dword [ebp + 0x40], ebx
cmp edi, ebx
je 0x428a8a
push edi
call fcn.004e3342
add esp, 4
xor edi, edi
mov dword [esp + 0xb4], edi
cmp dword [esp + 0x28], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
jle 0x428aa6
lea ecx, [ebp + 0x58]
call fcn.00457830
cmp dword [esp + 0x20], ebx
jle 0x428ab8
push 6
mov ecx, 0x52c138
call fcn.0043da40
cmp dword [esp + 0x28], ebx
jne 0x428aea
cmp dword [esp + 0x5c], ebx
jne 0x428aea
cmp dword [0x52c138], 6
je 0x428ad9
push 0xa
mov ecx, 0x52c138
call fcn.0043da40
lea ecx, [esp + 0x2138]
call fcn.00442a60
jmp 0x428c4b
cmp byte [esp + 0x19], 0
je 0x428b07
lea ecx, [esp + 0xf370]
push ecx
lea ecx, [esp + 0x213c]
call fcn.0042d3f0
jmp 0x428b15
push ebx
push ebx
lea ecx, [esp + 0x2140]
call fcn.0042d840
lea edx, [esp + 0x2156]
push edx
push ebx
mov ecx, 0x52c148
call fcn.004468f0
lea eax, [esp + 0x2156]
lea ecx, [esp + 0x60]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], 0x89
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], 1
call fcn.004693c0
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax + 0x639c]
add eax, 0x639c
cmp cx, bx
je 0x428b97
xor edx, edx
cmp cx, 0x40
sete dl
dec edx
and eax, edx
push eax
lea eax, [esp + 0x215a]
push eax
call fcn.00467ea0
test al, al
jne 0x428b97
push 2
mov ecx, 0x52c138
call fcn.0043dc00
mov ecx, dword [ebp + 0x38]
cmp byte [ecx + 0x6150], 0
je 0x428bb4
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, ebp
call fcn.004241b0
lea esi, [esp + 0xe36a]
cmp word [esp + 0xe36a], bx
jne 0x428bcc
lea esi, [esp + 0x2156]
mov ecx, dword [ebp + 0x38]
push 0x800
push esi
add ecx, 0xb40a
push ecx
call fcn.00467570
mov edx, dword [ebp + 0x38]
cmp byte [edx + 0x62d9], 0
je 0x428bf9
push esi
mov ecx, ebp
call fcn.00426650
test al, al
je 0x428c4b
mov eax, dword [ebp + 0x38]
cmp word [eax + 0xa3ea], 0x4d
je 0x428c0f
cmp byte [eax + 0x6196], 0
je 0x428c28
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x215a]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, ebp
call fcn.004243f0
cmp byte [esp + 0xe325], 0
je 0x428c4b
mov ebp, dword [ebp + 0x38]
cmp dword [ebp + 0x6140], ebx
je 0x428c4b
lea eax, [esp + 0xe36a]
push eax
push ebp
call fcn.0045ba00
mov byte [esp + 0x1d634], 2
cmp edi, ebx
je 0x428c60
push edi
call fcn.004e3342
add esp, 4
mov byte [esp + 0x1d634], 1
lea ecx, [esp + 0x2138]
call fcn.0042a070
mov byte [esp + 0x1d634], 0
lea ecx, [esp + 0xf370]
call fcn.0042a070
mov dword [esp + 0x1d634], 0xffffffff
lea ecx, [esp + 0x34]
call fcn.00429030
mov ecx, dword [esp + 0x1d62c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1d614]
xor ecx, esp
call fcn.004e34f4
add esp, 0x1d624
ret 0xc