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

Disassembly:
push 0xffffffffffffffff
push 0x59f6fb
mov eax, dword fs:[0]
push eax
sub esp, 0x384
push ebx
push ebp
push esi
push edi
mov eax, dword [0x61e69c]
xor eax, esp
push eax
lea eax, [esp + 0x398]
mov dword fs:[0], eax
mov edx, dword [esp + 0x3ac]
cmp byte [edx + 8], 6
je 0x415ad1
xor eax, eax
jmp 0x41766f
mov eax, dword [edx]
xor ebx, ebx
cmp eax, ebx
je 0x415aea
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx]
mov edi, dword [eax]
mov dword [esp + 0x44], ecx
mov byte [esp + 0x48], bl
jmp 0x415af5
xor edi, edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x48], 1
mov dword [esp + 0x40], edi
lea esp, [esp]
movsx eax, byte [edx + 8]
add eax, 0xfffffffa
cmp eax, 1
ja 0x415b1d
mov eax, dword [edx]
cmp eax, ebx
je 0x415b1d
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
mov esi, ecx
xor cl, cl
jmp 0x415b23
xor eax, eax
xor esi, esi
mov cl, 1
cmp byte [esp + 0x48], 0
jne 0x415b3e
cmp edi, ebx
je 0x415b32
cmp edi, eax
je 0x415b37
call fcn.004f825e
cmp dword [esp + 0x44], esi
sete cl
test cl, cl
jne 0x41766a
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0x44]
call fcn.004ac4f0
mov dword [esp + 0x3a0], ebx
cmp byte [esp + 0x1ac], 1
lea ecx, [esp + 0x1a4]
je 0x415b8b
mov dword [esp + 0x3a0], 0xffffffff
call fcn.004acb90
mov edx, dword [esp + 0x3ac]
jmp 0x415b00
call fcn.004acdf0
lea esi, [esp + 0x4c]
mov ebp, eax
call fcn.00410fd0
mov byte [esp + 0x3a0], 1
mov ecx, dword [esp + 0xec]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], ebx
jne 0x415beb
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call eax
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x3ac]
lea ecx, [esp + 0xe4]
push ecx
push ecx
push ebp
push edx
mov byte [esp + 0x3b0], 2
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, 0x5d93d4
lea esi, [esp + 0x250]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 3
call fcn.004accc0
mov edi, 0x10
mov byte [esp + 0x3a0], 4
cmp dword [eax + 0x18], edi
jb 0x415c65
mov eax, dword [eax + 4]
jmp 0x415c68
add eax, 4
push eax
lea eax, [esp + 0x90]
push eax
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 5
mov ecx, dword [eax]
mov esi, dword [esp + 0x50]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x415cd9
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x415cc5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x415cc5
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x415cbc
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x50], ebx
jmp 0x415cd2
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x54]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 4
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415d04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x415d17
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x24c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 2
call fcn.004acb90
lea ecx, [esp + 0xe4]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0x154]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0x154], edx
mov dword [esp + 0x158], ebx
jne 0x415d98
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x14c]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 6
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.pkgname
lea esi, [esp + 0x270]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 7
call fcn.004accc0
mov byte [esp + 0x3a0], 8
cmp dword [eax + 0x18], edi
jb 0x415e0d
mov eax, dword [eax + 4]
jmp 0x415e10
add eax, 4
push eax
lea edx, [esp + 0xa4]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 9
mov ecx, dword [eax]
mov esi, dword [esp + 0x4c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x415e81
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x415e6d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x415e6d
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x415e64
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x4c], ebx
jmp 0x415e7a
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x50]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 8
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415eac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x415ebf
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x26c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 6
call fcn.004acb90
lea ecx, [esp + 0x14c]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0x10c]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], ebx
jne 0x415f40
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0x104], eax
lea eax, [esp + 0x104]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0xa
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.version
lea esi, [esp + 0x220]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0xb
call fcn.004accc0
mov byte [esp + 0x3a0], 0xc
cmp dword [eax + 0x18], edi
jb 0x415fb5
mov eax, dword [eax + 4]
jmp 0x415fb8
add eax, 4
push eax
lea edx, [esp + 0xac]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0xd
mov ecx, dword [eax]
mov esi, dword [esp + 0x54]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416029
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x416015
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416015
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41600c
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x54], ebx
jmp 0x416022
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x58]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0xc
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416054
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x416067
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x21c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0xa
call fcn.004acb90
lea ecx, [esp + 0x104]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0x13c]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], ebx
jne 0x4160e8
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0x134], eax
lea eax, [esp + 0x134]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0xe
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, 0x5d93e8
lea esi, [esp + 0x2b0]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0xf
call fcn.004accc0
mov byte [esp + 0x3a0], 0x10
cmp dword [eax + 0x18], edi
jb 0x41615d
mov eax, dword [eax + 4]
jmp 0x416160
add eax, 4
push eax
lea edx, [esp + 0xb4]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x11
mov ecx, dword [eax]
mov esi, dword [esp + 0x60]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4161d1
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x4161bd
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4161bd
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4161b4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x60], ebx
jmp 0x4161ca
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x64]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x10
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4161fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x41620f
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x2ac]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0xe
call fcn.004acb90
lea ecx, [esp + 0x134]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0x12c]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], ebx
jne 0x416290
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0x124], eax
lea eax, [esp + 0x124]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x12
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.name
lea esi, [esp + 0x240]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x13
call fcn.004accc0
mov byte [esp + 0x3a0], 0x14
cmp dword [eax + 0x18], edi
jb 0x416305
mov eax, dword [eax + 4]
jmp 0x416308
add eax, 4
push eax
lea edx, [esp + 0xa0]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x15
mov ecx, dword [eax]
mov esi, dword [esp + 0x68]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416379
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x416365
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416365
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41635c
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x68], ebx
jmp 0x416372
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x6c]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x14
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4163a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x4163b7
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x23c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0x12
call fcn.004acb90
lea ecx, [esp + 0x124]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0xbc]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], ebx
jne 0x416438
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb4]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x16
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.size
lea esi, [esp + 0x2d0]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x17
call fcn.004accc0
mov byte [esp + 0x3a0], 0x18
cmp dword [eax + 0x18], edi
jb 0x4164ad
mov eax, dword [eax + 4]
jmp 0x4164b0
add eax, 4
push eax
lea edx, [esp + 0x84]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x19
mov ecx, dword [eax]
mov esi, dword [esp + 0x6c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416521
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x41650d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41650d
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x416504
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x6c], ebx
jmp 0x41651a
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x70]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x18
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41654c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x41655f
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x2cc]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0x16
call fcn.004acb90
lea ecx, [esp + 0xb4]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0x164]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ebx
jne 0x4165e0
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x15c]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x1a
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.versionname
lea esi, [esp + 0x260]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x1b
call fcn.004accc0
mov byte [esp + 0x3a0], 0x1c
cmp dword [eax + 0x18], edi
jb 0x416655
mov eax, dword [eax + 4]
jmp 0x416658
add eax, 4
push eax
lea edx, [esp + 0xb0]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x1d
mov ecx, dword [eax]
mov esi, dword [esp + 0x58]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4166c9
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x4166b5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4166b5
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4166ac
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x58], ebx
jmp 0x4166c2
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x5c]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x1c
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4166f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x416707
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x25c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0x1a
call fcn.004acb90
lea ecx, [esp + 0x15c]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0xcc]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ebx
jne 0x416788
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc4]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x1e
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.iurl
lea esi, [esp + 0x290]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x1f
call fcn.004accc0
mov byte [esp + 0x3a0], 0x20
cmp dword [eax + 0x18], edi
jb 0x4167fd
mov eax, dword [eax + 4]
jmp 0x416800
add eax, 4
push eax
lea edx, [esp + 0x98]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x21
mov ecx, dword [eax]
mov esi, dword [esp + 0x70]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416871
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x41685d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41685d
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x416854
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x70], ebx
jmp 0x41686a
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x74]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x20
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41689c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x4168af
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x28c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0x1e
call fcn.004acb90
lea ecx, [esp + 0xc4]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0xdc]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], ebx
jne 0x416930
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd4]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x22
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.token
lea esi, [esp + 0x280]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x23
call fcn.004accc0
mov byte [esp + 0x3a0], 0x24
cmp dword [eax + 0x18], edi
jb 0x4169a5
mov eax, dword [eax + 4]
jmp 0x4169a8
add eax, 4
push eax
lea edx, [esp + 0xa8]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x25
mov ecx, dword [eax]
mov esi, dword [esp + 0x64]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416a19
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x416a05
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416a05
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4169fc
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x64], ebx
jmp 0x416a12
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x68]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x24
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416a44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x416a57
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x27c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0x22
call fcn.004acb90
lea ecx, [esp + 0xd4]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
mov edx, dword [esp + 0xfc]
and edx, 0xffffff04
or edx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], ebx
jne 0x416ad8
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call edx
mov dword [esp + 0xf4], eax
lea eax, [esp + 0xf4]
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x26
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, str.uiversion
lea esi, [esp + 0x2c0]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x27
call fcn.004accc0
mov byte [esp + 0x3a0], 0x28
cmp dword [eax + 0x18], edi
jb 0x416b4d
mov eax, dword [eax + 4]
jmp 0x416b50
add eax, 4
push eax
lea edx, [esp + 0x88]
push edx
call fcn.004ea33e
add esp, 8
mov byte [esp + 0x3a0], 0x29
mov ecx, dword [eax]
mov esi, dword [esp + 0x5c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416bc1
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x416bad
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416bad
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x416ba4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x5c], ebx
jmp 0x416bba
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x60]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 0x28
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416bec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x30], edi
jb 0x416bff
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
lea ecx, [esp + 0x2bc]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
mov byte [esp + 0x3a0], 0x26
call fcn.004acb90
lea ecx, [esp + 0xf4]
mov byte [esp + 0x3a0], 1
call fcn.004acb90
lea edx, [esp + 0x88]
push edx
lea ecx, [esp + 0x50]
call fcn.00418920
mov byte [esp + 0x3a0], 0x2a
mov ecx, dword [eax]
mov esi, dword [esp + 0x74]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x416ca9
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x416c95
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x416c95
call fcn.004073f0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x416c8c
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x74], ebx
jmp 0x416ca2
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x78]
call fcn.004072f0
mov edi, 0x10
xor ebx, ebx
mov byte [esp + 0x3a0], 1
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416cd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x11c]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x660d7c], 1
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], ebx
jne 0x416d1c
or dword [0x660d7c], 1
push 0x5a6480
mov dword [0x660cec], 0x5f8b70
call fcn.004f735c
add esp, 4
mov ecx, dword [0x627b7c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x5d906c
call eax
mov dword [esp + 0x114], eax
mov edx, dword [esp + 0x3ac]
lea ecx, [esp + 0x114]
push ecx
push ecx
push ebp
push edx
mov byte [esp + 0x3b0], 0x2b
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, 0x5d942c
lea esi, [esp + 0x2e0]
call fcn.004ad940
lea esi, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0x3a0], 0x2c
call fcn.004accc0
mov byte [esp + 0x3a0], 0x2d
cmp dword [eax + 0x18], edi
jb 0x416d91
mov eax, dword [eax + 4]
jmp 0x416d94
add eax, 4
push eax
lea eax, [esp + 0x40]
push eax
call fcn.004ea33e
add esp, 8
cmp dword [esp + 0x30], edi
jb 0x416db5
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004f6734
add esp, 4
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], 0
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x3a0], 0x30
call fcn.004acb90
lea ecx, [esp + 0x114]
mov byte [esp + 0x3a0], 0x31
call fcn.004acb90
mov edx, dword [esp + 0x3c]
push 0x5d9430
push edx
call fcn.004f69f9
add esp, 8
cmp eax, ebx
jne 0x417232
push 0x5d906c
lea esi, [esp + 0x200]
call fcn.004ac960
mov eax, esi
push eax
push ecx
mov ecx, dword [esp + 0x3b4]
push ebp
push ecx
mov byte [esp + 0x3b0], 0x32
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, 0x5d93b0
lea esi, [esp + 0x2a0]
call fcn.004ad940
lea esi, [esp + 0x174]
mov ecx, eax
mov byte [esp + 0x3a0], 0x33
call fcn.004accc0
mov byte [esp + 0x3a0], 0x34
cmp dword [eax + 0x18], edi
jb 0x416e71
mov eax, dword [eax + 4]
jmp 0x416e74
add eax, 4
push eax
lea edx, [esp + 0x7c]
push edx
call fcn.004ea33e
add esp, 8
cmp dword [esp + 0x18c], edi
jb 0x416e9b
mov eax, dword [esp + 0x178]
push eax
call fcn.004f6734
add esp, 4
mov dword [esp + 0x18c], 0xf
mov dword [esp + 0x188], ebx
mov byte [esp + 0x178], 0
lea ecx, [esp + 0x29c]
mov byte [esp + 0x3a0], 0x37
call fcn.004acb90
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x3a0], 0x38
call fcn.004acb90
push 0x5d9424
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, dword [esp + 0x80]
call fcn.00410b90
mov byte [esp + 0x3a0], 0x39
mov edx, dword [esp + 0x1ec]
mov eax, dword [esp + 0x1d8]
mov ebp, dword [edx]
mov dword [esp + 0x16c], eax
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x1ec]
test edi, edi
je 0x416f30
cmp edi, dword [esp + 0x1d8]
je 0x416f35
call fcn.004f825e
cmp ebp, esi
je 0x4171ed
test edi, edi
jne 0x417014
call fcn.004f825e
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x416f56
call fcn.004f825e
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004066b0
mov byte [esp + 0x3a0], 0x3a
mov edx, dword [esp + 0x38]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x416f92
mov ecx, esi
lea eax, [esp + 0x38]
call fcn.004073a0
mov edx, dword [esp + 0x38]
lea eax, [esi + 1]
push eax
push edx
call fcn.004f8493
add esp, 8
test esi, esi
jl 0x417660
mov eax, dword [esp + 0x38]
cmp esi, dword [eax - 8]
jg 0x417660
sub esp, 0x2c
mov dword [eax - 0xc], esi
mov edx, dword [esp + 0x64]
mov eax, esp
xor ecx, ecx
mov dword [esp + 0xbc], esp
push eax
lea edi, [esp + 0x7c]
mov word [edx + esi*2], cx
call fcn.00411330
mov byte [esp + 0x3cc], 0x3b
mov esi, dword [esp + 0x64]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0xc8], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x41701b
cmp eax, dword [esi]
jne 0x41701b
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x417056
mov eax, dword [edi]
jmp 0x416f4c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x41765b
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004f745a
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
lea esi, [esp + 0x368]
mov byte [esp + 0x3d0], 0x3a
call fcn.00419e30
add esp, 0x30
mov ebx, eax
mov byte [esp + 0x3a0], 0x3c
mov esi, dword [ebx]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4170a5
cmp eax, dword [esi]
jne 0x4170a5
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4170e0
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x41765b
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004f745a
add esp, 0x10
add edi, 0x10
mov dword [esp + 0x174], edi
lea ecx, [esp + 0x178]
lea edi, [ebx + 4]
push ecx
mov byte [esp + 0x3a4], 0x3d
call fcn.00411330
mov eax, dword [esp + 0x3a8]
lea edx, [esp + 0x174]
push edx
add eax, 0xac
push eax
lea ebx, [esp + 0x334]
mov byte [esp + 0x3a8], 0x3e
call fcn.00418dc0
lea eax, [esp + 0x178]
mov byte [esp + 0x3a0], 0x3c
call fcn.004110c0
mov eax, dword [esp + 0x174]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417162
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x33c]
mov byte [esp + 0x3a0], 0x3a
call fcn.004110c0
mov eax, dword [esp + 0x338]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417199
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x16c]
test eax, eax
jne 0x4171e9
call fcn.004f825e
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x4171b5
call fcn.004f825e
mov ebp, dword [ebp]
mov byte [esp + 0x3a0], 0x39
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416f15
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x416f15
mov eax, dword [eax]
jmp 0x4171ab
mov ecx, dword [esp + 0x1f8]
push ecx
call fcn.004f744f
add esp, 4
lea esi, [esp + 0x1d8]
mov dword [esp + 0x1f8], 0
call fcn.00445420
mov edx, dword [esp + 0x1d8]
push edx
call fcn.004f6734
mov byte [esp + 0x3a4], 0x31
mov eax, dword [esp + 0x7c]
jmp 0x4175c1
mov ecx, dword [esp + 0x3c]
push 0x5d943c
push ecx
call fcn.004f69f9
add esp, 8
cmp eax, ebx
jne 0x4175e2
push 0x5d906c
lea esi, [esp + 0x210]
call fcn.004ac960
mov eax, dword [esp + 0x3ac]
mov edx, esi
push edx
push ecx
push ebp
push eax
mov byte [esp + 0x3b0], 0x3f
call fcn.004ad360
mov ecx, eax
add esp, 4
mov eax, 0x5d9428
lea esi, [esp + 0x230]
call fcn.004ad940
lea esi, [esp + 0x174]
mov ecx, eax
mov byte [esp + 0x3a0], 0x40
call fcn.004accc0
mov byte [esp + 0x3a0], 0x41
cmp dword [eax + 0x18], edi
jb 0x4172b5
mov eax, dword [eax + 4]
jmp 0x4172b8
add eax, 4
push eax
lea ecx, [esp + 0x80]
push ecx
call fcn.004ea33e
add esp, 8
cmp dword [esp + 0x18c], edi
jb 0x4172e2
mov edx, dword [esp + 0x178]
push edx
call fcn.004f6734
add esp, 4
mov dword [esp + 0x18c], 0xf
mov dword [esp + 0x188], ebx
mov byte [esp + 0x178], 0
lea ecx, [esp + 0x22c]
mov byte [esp + 0x3a0], 0x44
call fcn.004acb90
lea ecx, [esp + 0x20c]
mov byte [esp + 0x3a0], 0x45
call fcn.004acb90
mov ecx, dword [esp + 0x7c]
push 0x5d9424
lea eax, [esp + 0x1b8]
push eax
call fcn.00410b90
mov byte [esp + 0x3a0], 0x46
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x1b4]
mov ebp, dword [ecx]
mov dword [esp + 0x144], edx
mov edi, dword [esp + 0x144]
mov esi, dword [esp + 0x1c8]
test edi, edi
je 0x417374
cmp edi, dword [esp + 0x1b4]
je 0x417379
call fcn.004f825e
cmp ebp, esi
je 0x41757e
test edi, edi
jne 0x417573
call fcn.004f825e
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x41739a
call fcn.004f825e
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x34]
push eax
call fcn.004066b0
mov bl, 0x47
mov byte [esp + 0x3a0], bl
mov edx, dword [esp + 0x34]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x4173d7
mov ecx, esi
lea eax, [esp + 0x34]
call fcn.004073a0
mov edx, dword [esp + 0x34]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.004f8493
add esp, 8
test esi, esi
jl 0x417660
mov eax, dword [esp + 0x34]
cmp esi, dword [eax - 8]
jg 0x417660
sub esp, 0x2c
mov dword [eax - 0xc], esi
mov eax, dword [esp + 0x60]
mov ecx, esp
xor edx, edx
mov dword [esp + 0xc4], esp
push ecx
lea edi, [esp + 0x7c]
mov word [eax + esi*2], dx
call fcn.00411330
mov byte [esp + 0x3cc], 0x48
mov eax, dword [esp + 0x60]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0xc0], esp
mov esi, esp
call fcn.004073f0
add eax, 0x10
mov dword [esi], eax
lea esi, [esp + 0x398]
mov byte [esp + 0x3d0], bl
call fcn.00419e30
add esp, 0x30
mov esi, eax
mov byte [esp + 0x3a0], 0x49
mov eax, dword [esi]
sub eax, 0x10
call fcn.004073f0
add eax, 0x10
mov dword [esp + 0x2f0], eax
lea edx, [esp + 0x2f4]
lea edi, [esi + 4]
push edx
mov byte [esp + 0x3a4], 0x4a
call fcn.00411330
mov ecx, dword [esp + 0x3a8]
lea eax, [esp + 0x2f0]
push eax
add ecx, 0xcc
push ecx
lea ebx, [esp + 0x328]
mov byte [esp + 0x3a8], 0x4b
call fcn.00418dc0
lea eax, [esp + 0x2f4]
mov byte [esp + 0x3a0], 0x49
call fcn.004110c0
mov eax, dword [esp + 0x2f0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4174ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x36c]
mov byte [esp + 0x3a0], 0x47
call fcn.004110c0
mov eax, dword [esp + 0x368]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417523
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x144]
test eax, eax
jne 0x41757a
call fcn.004f825e
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x41753f
call fcn.004f825e
mov ebp, dword [ebp]
mov byte [esp + 0x3a0], 0x46
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417359
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x417359
mov eax, dword [edi]
jmp 0x417390
mov eax, dword [eax]
jmp 0x417535
mov ecx, dword [esp + 0x1d4]
push ecx
call fcn.004f744f
add esp, 4
lea esi, [esp + 0x1b4]
mov dword [esp + 0x1d4], 0
call fcn.00445420
mov edx, dword [esp + 0x1b4]
push edx
call fcn.004f6734
mov byte [esp + 0x3a4], 0x31
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4175f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4175f8
mov esi, dword [esp + 0x3a8]
add esi, 0xec
lea ebx, [esp + 0x4c]
call fcn.004114c0
lea esi, [esp + 0x40]
call fcn.004aedd0
mov byte [esp + 0x3a0], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417629
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x4c]
call fcn.004110c0
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x3a0], 0xffffffff
call fcn.004acb90
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x3ac]
xor ebx, ebx
jmp 0x415b00
call fcn.00407390
push 0x80070057
call fcn.00401050
mov eax, 1
mov ecx, dword [esp + 0x398]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x390
ret 8