Function at 0x40f950
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d045e
mov eax, dword fs:[0]
push eax
sub esp, 0x8dc
mov eax, dword [0x65ff58]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x8b8], ecx
mov ecx, dword [ebp + 0x14]
xor ebx, ebx
mov dword [ebp - 0x8d8], eax
mov dword [ebp - 0x8e0], esi
mov dword [ebp - 0x8d4], ecx
mov dword [ebp - 0x8b4], ebx
lea edx, [ebp - 0x8d0]
push 0x5f1aec
push edx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x8c0], ebx
mov dword [ebp - 0x8bc], ebx
call fcn.0041a060
add esp, 8
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0041e8d0
push eax
mov eax, dword [edi + 0x170]
mov ecx, esi
call eax
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], bl
call fcn.00401330
mov ecx, dword [ebp - 0x8d4]
mov edx, dword [ecx + 0x20]
push 1
push ebx
push edx
call fcn.00434200
mov eax, dword [esi + 0x20]
push 1
push ebx
push eax
call fcn.00434200
push 0x103
lea ecx, [ebp - 0x31b]
push ebx
push ecx
mov byte [ebp - 0x31c], bl
call fcn.005b7490
push 0x103
lea edx, [ebp - 0x627]
push ebx
push edx
mov dword [ebp - 0x8dc], ebx
mov byte [ebp - 0x628], bl
call fcn.005b7490
push 0x103
lea eax, [ebp - 0x523]
push ebx
push eax
mov byte [ebp - 0x524], bl
call fcn.005b7490
push ebx
push 0x1a
lea ecx, [ebp - 0x31c]
push ecx
push ebx
call fcn.0042ef00
add esp, 0x4c
lea edx, [ebp - 0x8d0]
push 0x5f1ac8
push edx
call fcn.00419f20
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x31c]
push eax
call fcn.0042f8d0
add esp, 8
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], bl
call fcn.00401330
lea eax, [ebp - 0x31c]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40fab5
sub eax, edi
push eax
lea ecx, [ebp - 0x31c]
push ecx
lea edx, [ebp - 0x628]
push edx
call fcn.005b7560
lea eax, [ebp - 0x8d0]
push 0x5f1aac
push eax
call fcn.00419f20
add esp, 0x14
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x31c]
push ecx
call fcn.0042f8d0
add esp, 8
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], bl
call fcn.00401330
lea edx, [ebp - 0x31c]
push edx
call fcn.0042fc00
add esp, 4
test eax, eax
je 0x40fb5c
lea eax, [ebp - 0x8d0]
push 0x5f1a94
push eax
call fcn.0041a060
add esp, 8
push ebx
mov ecx, eax
mov dword [ebp - 0x8b4], 1
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x40fb62
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 1
je 0x40fb7d
and dword [ebp - 0x8b4], 0xfffffffe
lea ecx, [ebp - 0x8d0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x40ff01
lea ecx, [ebp - 0x8dc]
push ecx
mov ecx, dword [ebp - 0x8b8]
lea edx, [ebp - 0x31c]
push edx
call fcn.0040d9a0
cmp eax, ebx
jl 0x40ff01
lea eax, [ebp - 0x8e8]
push 0x5f1a84
push eax
call fcn.00419f20
add esp, 8
mov ecx, eax
call fcn.0041e8d0
mov ecx, dword [ebp - 0x8dc]
push eax
push ecx
call fcn.0040d910
add esp, 8
lea ecx, [ebp - 0x8e8]
mov edi, eax
call fcn.00401330
cmp edi, ebx
je 0x40ff01
lea edx, [ebp - 0x8e4]
push 0x5f1a84
push edx
call fcn.00419f20
add esp, 8
mov ecx, eax
call fcn.0041e8d0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40fc08
sub eax, edx
add edi, eax
lea ecx, [ebp - 0x8e4]
mov dword [ebp - 0x8b0], edi
call fcn.00401330
lea eax, [ebp - 0x8c4]
push 0x5f1a70
push eax
call fcn.00419f20
add esp, 8
mov ecx, eax
call fcn.0041e8d0
push eax
push edi
call fcn.0040d910
add esp, 8
lea ecx, [ebp - 0x8c4]
mov edi, eax
call fcn.00401330
cmp edi, ebx
je 0x40ff01
lea ecx, [ebp - 0x8c8]
push 0x5f1a70
push ecx
call fcn.00419f20
add esp, 8
mov ecx, eax
call fcn.0041e8d0
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40fc80
sub eax, edx
lea ecx, [ebp - 0x8c8]
add edi, eax
call fcn.00401330
mov eax, dword [ebp - 0x8b0]
lea edx, [ebp - 0x8d0]
push edx
push 0x5f1a6c
mov byte [edi], bl
push eax
mov dword [ebp - 0x8d0], ebx
call fcn.005b869f
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x40fcfa
nop
lea ecx, [ebp - 0x628]
push edi
push ecx
call fcn.0042f8d0
push edi
lea edx, [ebp - 0x524]
push 0x104
push edx
call fcn.005b8640
lea eax, [ebp - 0x8d0]
push eax
push 0x5f1a6c
push ebx
call fcn.005b869f
mov edi, eax
add esp, 0x20
cmp edi, ebx
jne 0x40fcc0
mov ecx, dword [ebp - 0x8dc]
push ecx
call fcn.005b814b
push 0x103
lea edx, [ebp - 0x41f]
push ebx
push edx
mov byte [ebp - 0x420], bl
call fcn.005b7490
push ebx
push 0x1c
lea eax, [ebp - 0x420]
push eax
push ebx
call fcn.0042ef00
lea ecx, [ebp - 0x8b0]
push 0x5f1a38
push ecx
call fcn.00419f20
add esp, 0x28
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.0041e8d0
push eax
lea edx, [ebp - 0x420]
push edx
call fcn.0042f8d0
add esp, 8
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
lea eax, [ebp - 0x524]
push eax
lea ecx, [ebp - 0x420]
push ecx
call fcn.0042f8d0
lea edx, [ebp - 0x8b0]
push 0x5f1a28
push edx
call fcn.00419f20
add esp, 0x10
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.0042f8d0
add esp, 8
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
lea ecx, [ebp - 0x420]
push ecx
call fcn.0042fc00
add esp, 4
test eax, eax
je 0x40ff01
lea edx, [ebp - 0x420]
push edx
lea ecx, [ebp - 0x88c]
call fcn.00408000
push ebx
lea eax, [ebp - 0x88c]
push eax
lea ecx, [ebp - 0x8a8]
push ecx
mov byte [ebp - 4], 6
call fcn.0049d2c0
add esp, 0xc
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 8
call fcn.00407370
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push 0x5f03f8
call fcn.00405530
sub esp, 0x1c
lea edx, [ebp - 0x8a8]
mov ecx, esp
mov dword [ebp - 0x8c8], esp
push edx
mov byte [ebp - 4], 9
call fcn.00404e50
mov ecx, dword [ebp - 0x8b8]
mov byte [ebp - 4], 8
call fcn.0040e850
mov edi, eax
or eax, edx
mov dword [ebp - 0x8c8], edx
mov dword [ebp - 0x8c0], edi
mov dword [ebp - 0x8bc], edx
je 0x40fef3
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea ecx, [ebp - 0x8b0]
push 0x5f1aec
push ecx
mov byte [ebp - 4], 0xa
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0xa
call fcn.00401330
mov edx, dword [ebp - 0x8c8]
lea eax, [ebp - 0x8a8]
push eax
lea ecx, [ebp - 0x854]
mov dword [ebp - 0x838], edi
mov dword [ebp - 0x834], edx
call fcn.0040e5a0
lea ecx, [ebp - 0x870]
push ecx
mov ecx, dword [ebp - 0x8d8]
call fcn.0040f930
lea ecx, [ebp - 0x870]
call fcn.00441920
lea ecx, [ebp - 0x8a8]
mov byte [ebp - 4], bl
call fcn.00404890
mov edi, dword [ebp - 0x8b8]
push ebx
mov ecx, edi
call fcn.0040db30
test eax, eax
je 0x40ff1a
mov ecx, edi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
push 0x206
lea eax, [ebp - 0x216]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x218], dx
call fcn.005b7490
lea ecx, [ebp - 0x8b0]
push 0x5f19f4
push ecx
call fcn.0041a060
add esp, 0x18
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.0041e8d0
mov edx, dword [edi + 0x170]
push eax
mov ecx, esi
call edx
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 0x20]
push 1
push ebx
push ecx
call fcn.00434200
mov edx, dword [esi + 0x20]
push 1
push ebx
push edx
call fcn.00434200
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.005b7490
push ebx
push 0x20
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x218]
push edx
call fcn.0042d000
add esp, 0x38
test eax, eax
je 0x410003
lea eax, [ebp - 0x8b0]
push 0x5f19e0
push eax
call fcn.0041a060
or dword [ebp - 0x8b4], 2
add esp, 8
push ebx
mov ecx, eax
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x410009
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 2
je 0x410024
and dword [ebp - 0x8b4], 0xfffffffd
lea ecx, [ebp - 0x8b0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x410149
lea ecx, [ebp - 0x8b0]
push 0x5f19c8
push ecx
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.0041e8d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8c8], esp
push eax
call fcn.00405530
sub esp, 0x1c
lea edx, [ebp - 0x218]
mov ecx, esp
mov dword [ebp - 0x8c4], esp
push edx
mov byte [ebp - 4], 0xe
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
mov byte [ebp - 4], 0xd
call fcn.0040e850
lea ecx, [ebp - 0x8b0]
mov edi, eax
mov dword [ebp - 0x8c8], edx
mov byte [ebp - 4], bl
call fcn.00401330
add dword [ebp - 0x8c0], edi
mov eax, dword [ebp - 0x8c8]
mov ecx, edi
adc dword [ebp - 0x8bc], eax
or ecx, eax
je 0x410149
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea edx, [ebp - 0x8b0]
push 0x5f19f4
push edx
mov byte [ebp - 4], 0xf
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0xf
call fcn.00401330
mov eax, dword [ebp - 0x8c8]
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x854]
mov dword [ebp - 0x838], edi
mov dword [ebp - 0x834], eax
call fcn.0040e540
mov ecx, dword [ebp - 0x8d8]
lea edx, [ebp - 0x870]
push edx
call fcn.0040f930
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], bl
call fcn.00441920
mov edi, dword [ebp - 0x8b8]
push ebx
mov ecx, edi
call fcn.0040db30
test eax, eax
je 0x410162
mov ecx, edi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
lea eax, [ebp - 0x8b0]
push 0x5f1994
push eax
call fcn.0041a060
add esp, 0xc
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.0041e8d0
mov edx, dword [edi + 0x170]
push eax
mov ecx, esi
call edx
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 0x20]
push 1
push ebx
push ecx
call fcn.00434200
mov edx, dword [esi + 0x20]
push 1
push ebx
push edx
call fcn.00434200
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.005b7490
push ebx
push 0x24
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x8b0]
push 0x5f1994
push edx
call fcn.0041a060
add esp, 0x3c
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0042d310
add esp, 8
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
lea ecx, [ebp - 0x218]
push ecx
call fcn.0042d000
add esp, 4
test eax, eax
je 0x41026d
lea edx, [ebp - 0x8b0]
push 0x5f197c
push edx
call fcn.0041a060
or dword [ebp - 0x8b4], 4
add esp, 8
push ebx
mov ecx, eax
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x410273
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 4
je 0x41028e
and dword [ebp - 0x8b4], 0xfffffffb
lea ecx, [ebp - 0x8b0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x4103b3
lea eax, [ebp - 0x8b0]
push 0x5f19c8
push eax
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.0041e8d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8c8], esp
push eax
call fcn.00405530
sub esp, 0x1c
lea edx, [ebp - 0x218]
mov ecx, esp
mov dword [ebp - 0x8c4], esp
push edx
mov byte [ebp - 4], 0x14
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
mov byte [ebp - 4], 0x13
call fcn.0040e850
lea ecx, [ebp - 0x8b0]
mov edi, eax
mov dword [ebp - 0x8c8], edx
mov byte [ebp - 4], bl
call fcn.00401330
add dword [ebp - 0x8c0], edi
mov eax, dword [ebp - 0x8c8]
mov ecx, edi
adc dword [ebp - 0x8bc], eax
or ecx, eax
je 0x4103b3
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea edx, [ebp - 0x8b0]
push 0x5f1938
push edx
mov byte [ebp - 4], 0x15
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x16
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0x15
call fcn.00401330
mov eax, dword [ebp - 0x8c8]
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x854]
mov dword [ebp - 0x838], edi
mov dword [ebp - 0x834], eax
call fcn.0040e540
mov ecx, dword [ebp - 0x8d8]
lea edx, [ebp - 0x870]
push edx
call fcn.0040f930
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], bl
call fcn.00441920
mov edi, dword [ebp - 0x8b8]
push ebx
mov ecx, edi
call fcn.0040db30
test eax, eax
je 0x4103cc
mov ecx, edi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
lea eax, [ebp - 0x8b0]
push 0x5f191c
push eax
call fcn.0041a060
add esp, 0xc
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 0x17
call fcn.0041e8d0
mov edx, dword [edi + 0x170]
push eax
mov ecx, esi
call edx
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 0x20]
push 1
push ebx
push ecx
call fcn.00434200
mov edx, dword [esi + 0x20]
push 1
push ebx
push edx
call fcn.00434200
push 0x14
call fcn.004b80a8
add esp, 0x1c
cmp eax, ebx
je 0x41044e
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov edi, eax
jmp 0x410450
xor edi, edi
push edi
push ebx
mov dword [edi], 0x14
call fcn.004307d0
add esp, 8
cmp eax, ebx
jne 0x41049b
lea eax, [ebp - 0x8b0]
push 0x5f1904
push eax
call fcn.0041a060
or dword [ebp - 0x8b4], 8
add esp, 8
push ebx
mov ecx, eax
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x4104a1
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 8
je 0x4104bc
and dword [ebp - 0x8b4], 0xfffffff7
lea ecx, [ebp - 0x8b0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x410561
mov ecx, dword [edi + 4]
or ecx, dword [edi + 8]
je 0x410561
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea edx, [ebp - 0x8b0]
push 0x5f191c
push edx
mov byte [ebp - 4], 0x18
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x19
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0x18
call fcn.00401330
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
lea edx, [ebp - 0x870]
mov dword [ebp - 0x834], ecx
mov ecx, dword [ebp - 0x8d8]
push edx
mov dword [ebp - 0x838], eax
call fcn.0040f930
mov eax, dword [edi + 4]
add dword [ebp - 0x8c0], eax
mov ecx, dword [edi + 8]
mov byte [ebp - 4], bl
adc dword [ebp - 0x8bc], ecx
lea ecx, [ebp - 0x870]
call fcn.00441920
push edi
call fcn.004b80d7
mov edi, dword [ebp - 0x8b8]
add esp, 4
push ebx
mov ecx, edi
call fcn.0040db30
test eax, eax
je 0x410583
mov ecx, edi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
lea edx, [ebp - 0x8b0]
push 0x5f18e0
push edx
call fcn.0041a060
add esp, 0xc
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 0x1a
call fcn.0041e8d0
push eax
mov eax, dword [edi + 0x170]
mov ecx, esi
call eax
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
mov ecx, dword [ebp - 0x8d4]
mov edx, dword [ecx + 0x20]
push 1
push ebx
push edx
call fcn.00434200
mov eax, dword [esi + 0x20]
push 1
push ebx
push eax
call fcn.00434200
push 0x206
lea edx, [ebp - 0x82e]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x830], cx
call fcn.005b7490
lea eax, [ebp - 0x830]
push eax
push 0x104
call fcn.00432d80
lea ecx, [ebp - 0x830]
push ecx
call fcn.0042d000
add esp, 0x30
test eax, eax
je 0x41065b
lea edx, [ebp - 0x8b0]
push 0x5f18cc
push edx
call fcn.0041a060
or dword [ebp - 0x8b4], 0x10
add esp, 8
push ebx
mov ecx, eax
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x410661
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 0x10
je 0x41067c
and dword [ebp - 0x8b4], 0xffffffef
lea ecx, [ebp - 0x8b0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x410773
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push 0x5f03f8
call fcn.00405530
sub esp, 0x1c
lea eax, [ebp - 0x830]
mov ecx, esp
mov dword [ebp - 0x8c8], esp
push eax
mov byte [ebp - 4], 0x1b
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
mov byte [ebp - 4], bl
call fcn.0040e850
mov edi, eax
add dword [ebp - 0x8c0], edi
mov eax, edx
mov ecx, edi
adc dword [ebp - 0x8bc], eax
or ecx, eax
mov dword [ebp - 0x8c8], eax
je 0x410773
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea edx, [ebp - 0x8b0]
push 0x5f18e0
push edx
mov byte [ebp - 4], 0x1c
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x1d
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0x1c
call fcn.00401330
mov eax, dword [ebp - 0x8c8]
lea ecx, [ebp - 0x830]
push ecx
lea ecx, [ebp - 0x854]
mov dword [ebp - 0x838], edi
mov dword [ebp - 0x834], eax
call fcn.0040e540
mov ecx, dword [ebp - 0x8d8]
lea edx, [ebp - 0x870]
push edx
call fcn.0040f930
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], bl
call fcn.00441920
mov edi, dword [ebp - 0x8b8]
push ebx
mov ecx, edi
call fcn.0040db30
test eax, eax
je 0x41078c
mov ecx, edi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
lea eax, [ebp - 0x8b0]
push 0x5f18b4
push eax
call fcn.0041a060
add esp, 0xc
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 0x1e
call fcn.0041e8d0
mov edx, dword [edi + 0x170]
push eax
mov ecx, esi
call edx
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 0x20]
push 1
push ebx
push ecx
call fcn.00434200
mov edx, dword [esi + 0x20]
push 1
push ebx
push edx
call fcn.00434200
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.005b7490
push ebx
push 0x24
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x218]
push edx
call fcn.0042d000
add esp, 0x38
test eax, eax
je 0x41085a
lea eax, [ebp - 0x8b0]
push 0x5f189c
push eax
call fcn.0041a060
or dword [ebp - 0x8b4], 0x20
add esp, 8
push ebx
mov ecx, eax
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x410860
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 0x20
je 0x41087b
and dword [ebp - 0x8b4], 0xffffffdf
lea ecx, [ebp - 0x8b0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x410c93
push ebx
sub esp, 0x1c
lea edx, [ebp - 0x218]
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push edx
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
call fcn.0040eab0
push 1
mov esi, eax
lea eax, [ebp - 0x8c4]
push 0x5f1870
push eax
mov edi, edx
call fcn.0041a060
add esp, 8
mov dword [ebp - 0x8b0], eax
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 0x1f
call fcn.00405530
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8b0]
mov byte [ebp - 4], 0x20
call fcn.0041e8d0
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x8b0], esp
push eax
mov eax, dword [ebp - 0x8c8]
push eax
push edx
call fcn.0040e700
mov ecx, dword [ebp - 0x8b8]
add esp, 0xc
call fcn.0040eab0
add esi, eax
lea ecx, [ebp - 0x88c]
adc edi, edx
call fcn.00404890
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], bl
call fcn.00401330
push 1
lea ecx, [ebp - 0x8c4]
push 0x5f1864
push ecx
call fcn.0041a060
add esp, 8
mov dword [ebp - 0x8b0], eax
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 0x21
call fcn.00405530
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8b0]
mov byte [ebp - 4], 0x22
call fcn.0041e8d0
mov edx, dword [ebp - 0x8c8]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push eax
push edx
push ecx
call fcn.0040e700
mov ecx, dword [ebp - 0x8b8]
add esp, 0xc
call fcn.0040eab0
add esi, eax
lea ecx, [ebp - 0x88c]
adc edi, edx
call fcn.00404890
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x8c4]
call fcn.00401330
push 1
lea eax, [ebp - 0x8c4]
push 0x5f1844
push eax
call fcn.0041a060
add esp, 8
mov dword [ebp - 0x8b0], eax
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 0x23
call fcn.00405530
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8b0]
mov byte [ebp - 4], 0x24
call fcn.0041e8d0
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x8b0], esp
push eax
mov eax, dword [ebp - 0x8c8]
push eax
push edx
call fcn.0040e700
mov ecx, dword [ebp - 0x8b8]
add esp, 0xc
call fcn.0040eab0
add esi, eax
lea ecx, [ebp - 0x88c]
adc edi, edx
call fcn.00404890
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], bl
call fcn.00401330
push 1
lea ecx, [ebp - 0x8c4]
push 0x5f1834
push ecx
call fcn.0041a060
add esp, 8
mov dword [ebp - 0x8b0], eax
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 0x25
call fcn.00405530
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8b0]
mov byte [ebp - 4], 0x26
call fcn.0041e8d0
mov edx, dword [ebp - 0x8c8]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push eax
push edx
push ecx
call fcn.0040e700
mov ecx, dword [ebp - 0x8b8]
add esp, 0xc
call fcn.0040eab0
add esi, eax
lea ecx, [ebp - 0x88c]
adc edi, edx
call fcn.00404890
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], bl
call fcn.00401330
push 1
lea eax, [ebp - 0x8c4]
push 0x5f1824
push eax
call fcn.0041a060
add esp, 8
mov dword [ebp - 0x8b0], eax
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 0x27
call fcn.00405530
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8b0]
mov byte [ebp - 4], 0x28
call fcn.0041e8d0
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x8b0], esp
push eax
mov eax, dword [ebp - 0x8c8]
push eax
push edx
call fcn.0040e700
mov ecx, dword [ebp - 0x8b8]
add esp, 0xc
call fcn.0040eab0
add esi, eax
lea ecx, [ebp - 0x88c]
adc edi, edx
call fcn.00404890
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], bl
call fcn.00401330
push 1
lea ecx, [ebp - 0x8c4]
push 0x5f180c
push ecx
call fcn.0041a060
add esp, 8
mov dword [ebp - 0x8b0], eax
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x88c]
mov byte [ebp - 4], 0x29
call fcn.00405530
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8b0]
mov byte [ebp - 4], 0x2a
call fcn.0041e8d0
mov edx, dword [ebp - 0x8c8]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push eax
push edx
push ecx
call fcn.0040e700
mov ecx, dword [ebp - 0x8b8]
add esp, 0xc
call fcn.0040eab0
add esi, eax
lea ecx, [ebp - 0x88c]
adc edi, edx
call fcn.00404890
lea ecx, [ebp - 0x8c4]
mov byte [ebp - 4], bl
call fcn.00401330
add dword [ebp - 0x8c0], esi
mov eax, esi
adc dword [ebp - 0x8bc], edi
or eax, edi
je 0x410c8d
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea ecx, [ebp - 0x8b0]
push 0x5f17f8
push ecx
mov byte [ebp - 4], 0x2b
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x2c
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0x2b
call fcn.00401330
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x854]
mov dword [ebp - 0x838], esi
mov dword [ebp - 0x834], edi
call fcn.0040e540
mov ecx, dword [ebp - 0x8d8]
lea eax, [ebp - 0x870]
push eax
call fcn.0040f930
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], bl
call fcn.00441920
mov esi, dword [ebp - 0x8e0]
mov edi, dword [ebp - 0x8b8]
push ebx
mov ecx, edi
call fcn.0040db30
test eax, eax
je 0x410cac
mov ecx, edi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
lea ecx, [ebp - 0x8b0]
push 0x5f17a8
push ecx
call fcn.0041a060
add esp, 0xc
mov edi, dword [esi]
mov ecx, eax
mov byte [ebp - 4], 0x2d
call fcn.0041e8d0
mov edx, dword [edi + 0x170]
push eax
mov ecx, esi
call edx
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 0x20]
push 1
push ebx
push ecx
call fcn.00434200
mov edx, dword [esi + 0x20]
push 1
push ebx
push edx
call fcn.00434200
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
xor esi, esi
xor edi, edi
call fcn.005b7490
push ebx
push 0x24
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x8c8]
push 0x5f1790
push edx
call fcn.0041a060
add esp, 0x3c
mov ecx, eax
mov byte [ebp - 4], 0x2e
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0042d310
add esp, 8
lea ecx, [ebp - 0x8c8]
mov byte [ebp - 4], bl
call fcn.00401330
lea ecx, [ebp - 0x218]
push ecx
call fcn.0042d000
add esp, 4
test eax, eax
je 0x410db4
sub esp, 0x1c
lea edx, [ebp - 0x218]
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push edx
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
call fcn.0040de60
mov esi, eax
add dword [ebp - 0x8c0], esi
adc dword [ebp - 0x8bc], edi
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.005b7490
push ebx
push 0x24
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x8b0]
push 0x5f177c
push edx
call fcn.0041a060
add esp, 0x24
mov ecx, eax
mov byte [ebp - 4], 0x2f
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0042d310
add esp, 8
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
lea ecx, [ebp - 0x218]
push ecx
call fcn.0042d000
add esp, 4
test eax, eax
je 0x410e5a
push 1
sub esp, 0x1c
lea edx, [ebp - 0x218]
mov ecx, esp
mov dword [ebp - 0x8b0], esp
push edx
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
call fcn.0040f090
add esi, eax
adc edi, edx
add dword [ebp - 0x8c0], esi
adc dword [ebp - 0x8bc], edi
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.005b7490
push ebx
push 0x23
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x8b0]
push 0x5f174c
push edx
call fcn.0041a060
add esp, 0x24
mov ecx, eax
mov byte [ebp - 4], 0x30
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0042d310
add esp, 8
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
lea ecx, [ebp - 0x218]
push ecx
call fcn.0042d000
add esp, 4
test eax, eax
je 0x410f66
push 1
sub esp, 0x1c
lea edx, [ebp - 0x218]
mov ecx, esp
mov dword [ebp - 0x8c8], esp
push edx
call fcn.00405530
mov ecx, dword [ebp - 0x8b8]
call fcn.0040edd0
add esi, eax
push 0x104
lea eax, [ebp - 0x218]
push ebx
push eax
adc edi, edx
call fcn.005b7490
push ebx
push 0x28
lea ecx, [ebp - 0x218]
push ecx
push ebx
call fcn.0042d0c0
lea edx, [ebp - 0x8b0]
push 0x5f1700
push edx
call fcn.0041a060
add esp, 0x24
mov ecx, eax
mov byte [ebp - 4], 0x31
call fcn.0041e8d0
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0042d310
add esp, 8
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], bl
call fcn.00401330
lea ecx, [ebp - 0x218]
push ecx
call fcn.0042d000
add esp, 4
mov edx, esi
or edx, edi
je 0x410fa3
lea eax, [ebp - 0x8b0]
push 0x5f16ec
push eax
call fcn.0041a060
or dword [ebp - 0x8b4], 0x40
add esp, 8
push ebx
mov ecx, eax
call fcn.0041e8d0
push eax
lea ecx, [ebp + 0x18]
call fcn.00408c10
mov byte [ebp - 0x8a9], 1
test eax, eax
js 0x410fa9
mov byte [ebp - 0x8a9], bl
test byte [ebp - 0x8b4], 0x40
je 0x410fbd
lea ecx, [ebp - 0x8b0]
call fcn.00401330
cmp byte [ebp - 0x8a9], bl
je 0x41104a
lea ecx, [ebp - 0x870]
call fcn.0043e460
lea ecx, [ebp - 0x8b0]
push 0x5f17a8
push ecx
mov byte [ebp - 4], 0x32
call fcn.0041a060
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x33
call fcn.0041e8d0
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e540
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 0x32
call fcn.00401330
mov ecx, dword [ebp - 0x8d8]
lea edx, [ebp - 0x870]
push edx
mov dword [ebp - 0x838], esi
mov dword [ebp - 0x834], edi
call fcn.0040f930
add dword [ebp - 0x8c0], esi
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], bl
adc dword [ebp - 0x8bc], edi
call fcn.00441920
mov esi, dword [ebp - 0x8b8]
push ebx
mov ecx, esi
call fcn.0040db30
test eax, eax
je 0x411063
mov ecx, esi
call fcn.00438500
push 0x1f4
call fcn.0042fe20
add esp, 4
lea ecx, [ebp + 0x18]
call fcn.00401330
mov eax, dword [ebp - 0x8c0]
mov edx, dword [ebp - 0x8bc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b734a
mov esp, ebp
pop ebp
ret 0x14