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

Disassembly:
mov eax, 0x4696c6
call fcn.0045cf28
sub esp, 0x300
mov ecx, dword [ebp + 0x18]
push ebx
push esi
push edi
mov eax, dword [ecx + 8]
xor ebx, ebx
xor edi, edi
cmp eax, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
jle 0x43889b
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edi*4]
cmp byte [eax], bl
je 0x4387fc
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
add dword [ebp - 0x18], ecx
adc dword [ebp - 0x14], edx
mov ecx, dword [eax + 0x18]
add dword [ebp - 0x40], ecx
mov eax, dword [eax + 0x1c]
adc dword [ebp - 0x3c], eax
add dword [ebp - 0x34], 1
adc dword [ebp - 0x30], ebx
jmp 0x438887
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ecx + eax*4]
lea ecx, [ebp - 0x21c]
push esi
call fcn.00434741
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x1a4], eax
mov ax, word [esi + 0x7c]
mov word [ebp - 0x1a0], ax
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x21c]
push eax
mov dword [ebp - 4], ebx
call fcn.00436ad0
test eax, eax
jne 0x4389d6
mov al, byte [ebp - 0x21a]
xor ecx, ecx
movzx edx, word [ebp - 0x1a0]
add edx, dword [ebp - 0x1a4]
xor esi, esi
shr al, 3
and eax, 1
shl eax, 4
add eax, edx
adc ecx, esi
add eax, dword [ebp - 0x20c]
adc ecx, dword [ebp - 0x208]
add dword [ebp - 0x18], eax
adc dword [ebp - 0x14], ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x21c]
call fcn.00434852
add dword [ebp - 0x18], 0x44
mov ecx, dword [ebp + 0x18]
adc dword [ebp - 0x14], ebx
inc edi
cmp edi, dword [ecx + 8]
jl 0x4387ce
mov eax, dword [ebp + 0x20]
cmp dword [eax + 8], ebx
je 0x4388ac
mov eax, dword [eax + 4]
add dword [ebp - 0x18], eax
adc dword [ebp - 0x14], ebx
push 1
mov eax, dword [ebp + 0x24]
pop edi
add dword [ebp - 0x18], edi
mov ecx, dword [eax]
adc dword [ebp - 0x14], ebx
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push eax
call dword [ecx + 0xc]
mov esi, dword [ebp + 0x1c]
lea ecx, [ebp - 0x30c]
push esi
call fcn.00431e8a
mov ecx, dword [esi + 0x2c]
mov eax, 0x400
cmp ecx, eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ecx
jbe 0x4388ee
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x11c]
call fcn.004357b8
cmp esi, ebx
mov byte [ebp - 4], 2
je 0x438916
push esi
lea ecx, [ebp - 0x11c]
call fcn.0043a64b
cmp dword [ebp - 0x20], edi
mov byte [ebp - 0xd], 1
ja 0x438919
mov byte [ebp - 0xd], bl
cmp dword [ebp - 0x30], ebx
ja 0x438928
jb 0x438925
cmp dword [ebp - 0x34], edi
ja 0x438928
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x438999
mov eax, dword [esi + 0xc]
mov al, byte [eax]
cmp al, bl
jne 0x43893e
cmp byte [esi + 0x30], bl
jne 0x438994
mov byte [ebp - 0xd], bl
cmp al, 0xc
jne 0x438994
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call fcn.0045d080
mov ecx, dword [esi + 0x28]
cmp ecx, ebx
jne 0x43895c
mov ecx, edi
push ebx
push ecx
push edx
push eax
call fcn.0045d080
push 0x20
cmp edx, ebx
pop ecx
ja 0x43897c
jb 0x438972
cmp eax, ecx
jae 0x43897c
cmp eax, 1
mov ecx, eax
jae 0x43897c
push 1
pop ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
div ecx
mov dword [ebp - 0xf0], ecx
cmp eax, 1
mov dword [ebp - 0x20], eax
ja 0x438994
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
jne 0x4389ef
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0043a00e
push dword [ebp - 0xe8]
mov ebx, eax
mov byte [ebp - 4], 1
call fcn.00406aa5
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.0040734d
jmp 0x43949a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x21c]
call fcn.00434852
mov eax, 0x80004001
jmp 0x4394ab
lea ecx, [ebp - 0x54]
call fcn.00404cbb
mov edi, 0x46c30c
mov dword [ebp - 0x54], edi
push 0x10
mov byte [ebp - 4], 3
call fcn.00406a7f
cmp eax, ebx
pop ecx
je 0x438a1f
mov dword [eax + 4], ebx
mov dword [eax + 0xc], ebx
mov dword [eax], 0x46c2fc
mov esi, eax
jmp 0x438a21
xor esi, esi
cmp esi, ebx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x24], esi
je 0x438a31
mov eax, dword [esi]
push esi
call dword [eax + 4]
push 1
mov ecx, esi
push dword [ebp + 0x24]
mov byte [ebp - 4], 4
call fcn.00438407
lea ecx, [ebp - 0x2a4]
call fcn.0043a6af
push dword [esi + 0xc]
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 5
push dword [ebp - 0x20]
call fcn.0040d0ed
push 0x10000
lea ecx, [ebp - 0xd8]
call fcn.004397c3
lea eax, [ebp - 0xcc]
push eax
call fcn.004549d0
mov dword [ebp - 0xb4], ebx
lea eax, [ebp - 0xd8]
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 6
mov dword [ebp - 0xb0], eax
call fcn.0043a8fd
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.0043a7ff
push 4
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.00403f02
mov dword [ebp - 0x84], 0x46b5f8
push 4
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.00403f02
mov dword [ebp - 0x70], 0x46b804
mov eax, dword [ebp - 0x20]
push ebx
shl eax, 9
push eax
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0xa
call fcn.0040c6d9
mov esi, eax
cmp esi, ebx
je 0x438ba3
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x438b66
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], edi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x54]
call fcn.00407371
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0040734d
push dword [ebp - 0xe8]
mov byte [ebp - 4], 1
call fcn.00406aa5
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.0040734d
mov ebx, esi
jmp 0x43949a
mov esi, dword [ebp + 0x18]
xor edi, edi
cmp dword [esi + 8], ebx
jle 0x438bef
lea ecx, [ebp - 0x164]
call fcn.00439823
mov byte [ebp - 0x124], bl
mov byte [ebp - 0x123], bl
lea eax, [ebp - 0x164]
lea ecx, [ebp - 0xac]
push eax
mov byte [ebp - 4], 0xc
call fcn.0043a950
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 0xa
call fcn.0040734d
inc edi
cmp edi, dword [esi + 8]
jl 0x438bad
mov esi, dword [ebp - 0x20]
cmp esi, ebx
jbe 0x438c2a
lea eax, [ebp - 0x11c]
lea ecx, [ebp - 0x24c]
push eax
call fcn.00439b25
push eax
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xd
call fcn.0043a852
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0xa
call fcn.0043a73c
dec esi
jne 0x438bf6
xor edi, edi
cmp dword [ebp - 0x20], ebx
jbe 0x438cf4
mov eax, dword [ebp - 0x8c]
mov esi, dword [eax + edi*4]
mov ecx, esi
call fcn.00439b75
cmp eax, ebx
mov dword [ebp - 0x30], eax
jne 0x438d61
push 0x58
call fcn.00406a7f
pop ecx
mov dword [ebp - 0x30], eax
cmp eax, ebx
mov byte [ebp - 4], 0xf
je 0x438c73
lea ecx, [ebp - 0xd8]
push ecx
mov ecx, eax
call fcn.00439892
jmp 0x438c75
xor eax, eax
mov ecx, eax
mov byte [ebp - 4], 0xa
mov dword [esi + 0x18], eax
call fcn.00439848
cmp eax, ebx
mov dword [ebp - 0x30], eax
jne 0x438e0b
push dword [esi + 0x18]
lea ecx, [esi + 0x1c]
call fcn.0040d26d
push 0x10
mov byte [esi + 0xa8], 1
call fcn.00406a7f
cmp eax, ebx
pop ecx
je 0x438cb7
mov dword [eax + 4], ebx
mov dword [eax], 0x46c2ec
jmp 0x438cb9
xor eax, eax
push eax
lea ecx, [esi + 0x14]
mov dword [esi + 0x10], eax
call fcn.0040d26d
mov eax, dword [esi + 0x10]
push esi
lea ecx, [ebp - 0x2a4]
push 0x439c2a
push esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
call fcn.004547e0
mov esi, eax
cmp esi, ebx
jne 0x438eb5
inc edi
cmp edi, dword [ebp - 0x20]
jb 0x438c35
mov eax, dword [ebp + 0x18]
or dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x2c], ebx
mov eax, dword [eax + 8]
cmp eax, ebx
jle 0x43940d
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x68], ecx
jae 0x4390dd
cmp dword [ebp - 0x38], eax
jge 0x4390dd
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x38]
shl eax, 2
mov ecx, dword [ecx + 0xc]
inc dword [ebp - 0x38]
mov esi, dword [ecx + eax]
cmp byte [esi], bl
je 0x4393fe
lea ecx, [ebp - 0x21c]
call fcn.00436906
cmp byte [esi + 1], bl
mov byte [ebp - 4], 0x12
je 0x438f2d
cmp byte [esi + 2], bl
je 0x438f83
jmp 0x4390ce
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x438dc9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], 0x46c30c
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xe
call fcn.00407371
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0040734d
push dword [ebp - 0xe8]
mov byte [ebp - 4], 1
call fcn.00406aa5
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.0040734d
mov ebx, dword [ebp - 0x30]
jmp 0x43949a
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x438e73
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], 0x46c30c
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x10
call fcn.00407371
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0040734d
push dword [ebp - 0xe8]
mov byte [ebp - 4], 1
call fcn.00406aa5
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.0040734d
mov ebx, dword [ebp - 0x30]
jmp 0x43949a
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x438f1d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], 0x46c30c
mov byte [ebp - 4], 0x11
jmp 0x438b6d
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0xc]
mov edi, dword [ecx + eax*4]
lea ecx, [ebp - 0x21c]
push edi
call fcn.0043a579
mov eax, dword [edi + 0x78]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x1a4], eax
mov ax, word [edi + 0x7c]
mov word [ebp - 0x1a0], ax
lea eax, [ebp - 0x21c]
push eax
call fcn.00436ad0
test eax, eax
jne 0x4394bc
lea ecx, [ebp - 0x21c]
call fcn.004378e4
test al, al
jne 0x4390ce
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x5c]
mov edi, dword [eax + 8]
add edi, 0x3c
push edi
mov dword [ebp - 0x58], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 0x24]
lea edx, [ebp - 0x28]
push edx
mov byte [ebp - 4], 0x15
push dword [esi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
cmp eax, 1
mov dword [ebp - 0x1c], eax
jne 0x43901d
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
add eax, 0x1a
adc ecx, ebx
add dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x5c]
adc dword [ebp - 0x14], ecx
push dword [ebp - 0x14]
mov ecx, dword [eax + 8]
push dword [ebp - 0x18]
call fcn.004382f9
mov eax, dword [ebp + 0x24]
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov esi, eax
cmp esi, ebx
jne 0x439577
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x38]
push edi
mov eax, dword [eax + ecx*4 - 4]
mov byte [eax + 0x41], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x12
cmp eax, ebx
je 0x4390ce
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4390ce
mov esi, dword [ebp - 0x1c]
cmp esi, ebx
jne 0x439645
mov eax, dword [ebp + 0x24]
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov esi, eax
cmp esi, ebx
jne 0x4396f8
push edi
mov byte [ebp - 4], 0x14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
cmp dword [ebp - 0x20], ebx
jbe 0x4390c2
mov eax, dword [ebp - 0x8c]
mov esi, dword [eax]
cmp byte [esi + 0xa8], bl
jne 0x439069
inc edi
add eax, 4
cmp edi, dword [ebp - 0x20]
jb 0x439054
jmp 0x4390c2
mov byte [esi + 0xa8], bl
push dword [ebp - 0x28]
lea ecx, [esi + 0x20]
call fcn.0040d26d
lea ecx, [ebp - 0x28]
call fcn.0042c896
mov ecx, dword [esi + 0x18]
call fcn.0040ce78
mov eax, dword [esi + 0x10]
push dword [eax + 0xc]
mov ecx, dword [eax + 8]
call fcn.0040d173
lea eax, [esi + 4]
push eax
call fcn.004548f0
mov eax, dword [ebp - 0x38]
push dword [esi + 8]
dec eax
lea ecx, [ebp - 0x84]
mov dword [esi + 0xac], eax
call fcn.004194d2
push edi
lea ecx, [ebp - 0x70]
call fcn.004194d2
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x12
call fcn.0040b218
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x21c]
jmp 0x4393f9
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xa0]
shl eax, 2
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax + ecx]
cmp byte [ecx + 0x41], bl
je 0x4390fc
inc dword [ebp - 0x2c]
jmp 0x4393fe
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 0xc]
mov edi, dword [ecx + eax]
lea ecx, [ebp - 0x19c]
call fcn.0043a54a
cmp byte [edi + 1], bl
mov byte [ebp - 4], 0x18
je 0x43911d
cmp byte [edi], bl
jne 0x439153
mov ecx, dword [ebp + 0x14]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 0xc]
push dword [ecx + eax*4]
lea ecx, [ebp - 0x19c]
call fcn.0043a556
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x19c]
push eax
call fcn.00436ad0
test eax, eax
jne 0x439717
cmp byte [edi], bl
je 0x4393a3
cmp byte [edi + 1], bl
je 0x43915d
mov al, byte [edi + 2]
jmp 0x439168
lea ecx, [ebp - 0x19c]
call fcn.004378e4
cmp al, bl
je 0x439184
lea eax, [ebp - 0x19c]
push eax
push edi
push dword [ebp + 0x1c]
push dword [ebp + 8]
call fcn.00439fcf
jmp 0x4393c5
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x2c]
jge 0x4391c0
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x19c]
push eax
push edi
push esi
push dword [ebp + 8]
call fcn.00439972
mov al, byte [esi + 0x40]
mov ecx, dword [ebp + 8]
push eax
push dword [edi + 0x1c]
push dword [edi + 0x18]
push dword [ebp - 0x178]
call fcn.00437a68
jmp 0x4391c3
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x58], eax
cmp byte [eax + 0x40], bl
je 0x439256
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 0x19
call fcn.0043818d
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x58]
push dword [ebp - 0xd4]
call fcn.0040c7d5
lea eax, [ebp - 0x19c]
push eax
mov al, byte [esi + 0x41]
push eax
mov al, byte [esi + 0x40]
push eax
mov eax, dword [ebp - 0x58]
add eax, 0x28
push eax
call fcn.00439a14
lea eax, [ebp - 0x19c]
push eax
push edi
push esi
push dword [ebp + 8]
call fcn.00439972
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x19c]
push eax
call fcn.00437bfb
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0xd8]
push eax
call fcn.0040c7be
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x18
call fcn.0040b218
jmp 0x4393c5
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x15], bl
jne 0x4392a6
mov dword [ebp - 0x3c], ebx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x1a
call fcn.0043818d
push dword [ebp - 0x3c]
mov ecx, dword [esi + 0x18]
call fcn.00439873
mov eax, dword [esi + 0x18]
mov byte [eax + 0x15], 1
add eax, 0x1c
push eax
call fcn.004548f0
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x18
call fcn.0040b218
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x8c]
mov esi, dword [ecx + eax*4]
lea ecx, [esi + 0x20]
call fcn.0042c896
mov eax, dword [esi + 0x8c]
mov byte [esi + 0xa8], 1
cmp eax, ebx
jne 0x43971e
push 1
lea ecx, [ebp - 0x70]
push dword [ebp - 0x1c]
call fcn.004074b8
push 1
lea ecx, [ebp - 0x84]
push dword [ebp - 0x1c]
call fcn.004074b8
cmp dword [ebp - 0x1c], ebx
jne 0x439371
mov ecx, dword [esi + 0x18]
call fcn.0040ceba
cmp eax, ebx
jne 0x43971e
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x1c], eax
lea ecx, [eax + 0x54]
call fcn.0042c896
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + 0x50]
call fcn.0042c896
lea eax, [ebp - 0x19c]
add esi, 0x90
push eax
mov eax, dword [ebp + 0x1c]
mov cl, byte [eax + 0x41]
mov al, byte [eax + 0x40]
push ecx
push eax
push esi
call fcn.00439a14
lea eax, [ebp - 0x19c]
push eax
push edi
push dword [ebp + 0x1c]
push dword [ebp + 8]
call fcn.00439972
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x19c]
push eax
call fcn.00437bfb
jmp 0x4393c5
mov eax, dword [esi + 0xac]
mov ecx, dword [ebp - 0xa0]
mov edi, dword [ecx + eax*4]
mov ecx, dword [esi + 0x18]
push edi
mov dword [ebp - 0x1c], edi
call fcn.0040ce9d
mov eax, dword [ebp - 0x1c]
push 6
add esi, 0x90
add edi, 0x28
pop ecx
rep movsd dword es:[edi], dword [esi]
mov byte [eax + 0x40], 1
jmp 0x4393ef
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x19c]
push dword [ebp - 0x24]
push eax
push edi
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.00439d62
cmp eax, ebx
jne 0x43971e
lea eax, [ebp - 0x19c]
lea ecx, [ebp - 0x54]
push eax
call fcn.0043aa30
add dword [ebp - 0x18], 0x1a
mov eax, dword [ebp - 0x5c]
adc dword [ebp - 0x14], ebx
push dword [ebp - 0x14]
mov ecx, dword [eax + 8]
push dword [ebp - 0x18]
call fcn.004382f9
inc dword [ebp - 0x2c]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x19c]
call fcn.00434852
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
cmp dword [ebp - 0x2c], eax
jl 0x438d0c
push dword [ebp + 0x20]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
call fcn.00437fac
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.0040b218
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0043a9f8
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 1
call fcn.0043584e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30c]
call fcn.00439ba0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x20
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0xa
call fcn.00434852
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x439533
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], 0x46c30c
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x13
call fcn.00407371
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0040734d
push dword [ebp - 0xe8]
mov byte [ebp - 4], 1
call fcn.00406aa5
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.0040734d
mov esi, 0x80004001
jmp 0x4397ad
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x12
cmp eax, ebx
je 0x43958f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0xa
call fcn.00434852
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x439606
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], 0x46c30c
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x16
call fcn.00407371
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0040734d
push dword [ebp - 0xe8]
mov byte [ebp - 4], 1
call fcn.00406aa5
pop ecx
lea ecx, [ebp - 0x11c]
call fcn.0040734d
jmp 0x4397ad
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x12
cmp eax, ebx
je 0x43965d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0xa
call fcn.00434852
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x4396d4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x54], 0x46c30c
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x17
call fcn.00407371
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0040734d
jmp 0x43979e
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x12
call fcn.0040b218
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x21c]
jmp 0x43972a
mov esi, 0x80004001
jmp 0x439720
mov esi, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x19c]
call fcn.00434852
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.0040734d
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 8
call fcn.0040734d
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 7
call fcn.00439c38
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00439ccd
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 5
call fcn.004397d6
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 4
call fcn.0043a6e9
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.0040b218
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.0043a9f8
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 1
call fcn.0043584e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30c]
call fcn.00439ba0
mov eax, esi
jmp 0x4394ab