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

Disassembly:
sub esp, 0x54c
mov eax, dword [0x5eef00]
xor eax, esp
mov dword [esp + 0x548], eax
mov eax, dword [esp + 0x554]
push ebx
push ebp
mov ebp, dword [esp + 0x558]
xor ebx, ebx
push 0x200
lea edx, [esp + 0x352]
push ebx
push edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov word [esp + 0x358], bx
call fcn.004b3a80
xor eax, eax
push 0x258
mov dword [esp + 0x6d], eax
mov dword [esp + 0x71], eax
mov dword [esp + 0x75], eax
mov dword [esp + 0x79], eax
lea eax, [esp + 0x104]
push ebx
push eax
mov byte [esp + 0x74], bl
mov word [esp + 0x108], bx
call fcn.004b3a80
push 0x4c
lea ecx, [esp + 0xc0]
push ebx
push ecx
mov word [esp + 0xc4], bx
call fcn.004b3a80
push 0x2f
lea edx, [esp + 0x99]
push ebx
push edx
mov byte [esp + 0xa0], bl
call fcn.004b3a80
xor eax, eax
add esp, 0x30
cmp ebp, ebx
mov byte [esp + 0x24], bl
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov dword [esp + 0x32], eax
mov word [esp + 0x36], ax
mov byte [esp + 0x40], bl
mov dword [esp + 0x42], eax
mov dword [esp + 0x46], eax
mov dword [esp + 0x4a], eax
mov dword [esp + 0x4e], eax
mov word [esp + 0x52], ax
mov byte [esp + 0x10], bl
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0xf], 0xff
mov dword [esp + 0x38], ebx
mov dword [esp + 8], ebx
jne 0x583fb7
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x548]
xor ecx, esp
call fcn.004b2f95
add esp, 0x54c
ret
push ebx
push 0x644730
call fcn.00479fc0
add esp, 8
test eax, eax
je 0x583fe9
push 0x644730
push str.tls_lock_lock
push str.TLS:_s:___lock__p_lock_failed_n
call fcn.004b3c49
add eax, 0x40
push eax
call fcn.004b3afa
add esp, 0x10
push esi
mov esi, dword [0x66608c]
push ebx
push 0x644730
call fcn.0047a000
add esp, 8
test eax, eax
je 0x584022
push 0x644730
push str.tls_lock_unlock
push str.TLS:_s:_lock__p_unlock_failed_n
call fcn.004b3c49
add eax, 0x40
push eax
call fcn.004b3afa
add esp, 0x10
cmp esi, 2
je 0x584042
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x548]
xor ecx, esp
call fcn.004b2f95
add esp, 0x54c
ret
xor esi, esi
push edi
jmp 0x584050
mov di, word [esi + 0x5bc458]
lea ecx, [esp + 0x354]
call fcn.0057f280
test eax, eax
jne 0x58418f
add esi, 0x20
cmp esi, 0xa0
jb 0x584050
jmp 0x584080
lea ecx, [esp + 0x64]
test ecx, ecx
je 0x58418f
movzx esi, byte [esp + 0x64]
lea edx, [esi + 1]
cmp edx, 0x10
jae 0x58418f
mov cl, byte [eax + 0x5bc454]
mov byte [esp + esi + 0x65], cl
add byte [esp + 0x64], 1
add eax, 1
cmp eax, 1
jb 0x584080
lea edx, [esp + 0x2c]
test edx, edx
je 0x58418f
cmp dword [esp + 0x34], ebx
jne 0x58418f
cmp word [esp + 0x38], bx
jne 0x58418f
cmp word [esp + 0x30], bx
jne 0x58418f
push 0x47fb
call fcn.004772c0
mov esi, eax
add esp, 4
cmp esi, ebx
mov dword [esp + 0x34], esi
je 0x58418f
lea eax, [esp + 0x18]
test eax, eax
mov edi, 1
mov word [esp + 0x38], 0x47fb
mov word [esp + 0x30], bx
mov dword [esp + 0x3c], edi
je 0x58417a
cmp ebx, ebx
jne 0x58417a
cmp word [esp + 0x24], bx
jne 0x58417a
cmp ebx, ebx
jne 0x58417a
push 0x3ffc
call fcn.004772c0
add esp, 4
cmp eax, ebx
mov dword [esp + 0x20], eax
je 0x58417a
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x358]
mov dword [esp + 0x20], ebx
push edx
lea ebx, [esp + 0x100]
mov eax, ebp
mov word [esp + 0x2c], 0x3ffc
mov dword [esp + 0x30], edi
call fcn.0057fe50
add esp, 8
test eax, eax
je 0x584197
mov dword [esp + 0x10], 0xffffffff
jmp 0x584341
push 0x47fb
push ebx
push esi
call fcn.004b3a80
push esi
call fcn.00477540
add esp, 0x10
or eax, 0xffffffff
jmp 0x584398
lea eax, [esp + 0xf8]
test eax, eax
je 0x58420e
mov eax, dword [esp + 0xfc]
mov ecx, eax
shr ecx, 0x18
mov edx, eax
mov byte [ebp + 0xd10], cl
shr eax, 8
shr edx, 0x10
mov byte [ebp + 0xd12], al
mov al, byte [esp + 0xfc]
lea edi, [ebp + 0xd14]
mov ecx, 7
lea esi, [esp + 0x100]
mov byte [ebp + 0xd11], dl
rep movsd dword es:[edi], dword [esi]
push ebp
lea edx, [esp + 0x1c]
lea esi, [esp + 0xfc]
mov byte [ebp + 0xd13], al
call fcn.0057ff40
add esp, 4
test eax, eax
je 0x584229
mov dword [esp + 0x10], 0xffffffff
jmp 0x584341
push 0x50
push 2
mov eax, ebp
call fcn.005839a0
add esp, 8
mov dword [esp + 0x10], 0xffffffff
jmp 0x584341
lea ecx, [esp + 0x18]
push ecx
push ebp
call fcn.00583620
mov ebx, 1
add esp, 8
cmp eax, ebx
je 0x58424d
mov dword [esp + 0x10], 0xffffffff
jmp 0x584341
lea edx, [esp + 0x18]
push edx
mov eax, ebp
call fcn.00581650
add esp, 4
test eax, eax
je 0x58426d
mov dword [esp + 0x10], 0xffffffff
jmp 0x584341
lea edx, [esp + 0x2c]
mov ecx, ebp
call fcn.005836c0
cmp eax, ebx
mov dword [esp + 0x44], eax
jne 0x58431e
cmp dword [ebp + 0xdd4], ebx
jne 0x5842b5
lea ebx, [esp + 0x2c]
mov edi, ebp
call fcn.00583390
test eax, eax
jne case.0x584489.1
mov al, byte [esp + 0x2c]
cmp al, 0x14
je 0x5842b9
cmp al, 0x15
je 0x5842b9
cmp al, 0x16
je 0x5842b9
cmp al, 0x17
jne case.0x584489.1
jmp 0x5842b9
mov al, byte [esp + 0x2c]
lea ecx, [esp + 0x16]
test ecx, ecx
je case.0x584489.1
cmp al, 0x14
je 0x5843b1
cmp al, 0x15
je 0x5842dd
cmp al, 0x16
je 0x5842d5
cmp al, 0x17
jne case.0x584489.1
cmp al, 0x15
jne 0x584404
lea edx, [esp + 0x16]
test edx, edx
je 0x584312
cmp word [esp + 0x30], 2
jne 0x584312
mov eax, dword [esp + 0x34]
mov cl, byte [eax]
lea edx, [esp + 0x16]
test edx, edx
je 0x584312
cmp byte [eax + 1], 0x46
jne 0x584309
mov dword [esp + 0x10], 0xfffffffe
cmp cl, 2
jne case.0x584489.0
mov ebx, 1
cmp dword [esp + 0x10], 0
jne 0x58432e
cmp dword [ebp + 0x1058], ebx
je 0x58432e
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 0x44]
test eax, eax
jge 0x58433a
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 1
jne 0x584360
mov esi, dword [esp + 0x34]
test esi, esi
je 0x584360
movzx ecx, word [esp + 0x38]
push ecx
push 0
push esi
call fcn.004b3a80
push esi
call fcn.00477540
add esp, 0x10
cmp dword [esp + 0x28], 1
jne 0x584386
mov esi, dword [esp + 0x20]
test esi, esi
je 0x584386
movzx edx, word [esp + 0x24]
push edx
push 0
push esi
call fcn.004b3a80
push esi
call fcn.00477540
add esp, 0x10
mov eax, dword [esp + 0x60]
test eax, eax
je 0x584394
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x558]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b2f95
add esp, 0x54c
ret
mov eax, dword [esp + 0x34]
test eax, eax
je case.0x584489.1
mov ecx, 1
cmp word [esp + 0x30], cx
jne case.0x584489.1
cmp byte [eax], cl
jne case.0x584489.1
push 0
mov byte [eax], 0
push ebp
mov word [esp + 0x38], 0
mov dword [ebp + 0xc48], ecx
call fcn.005824e0
add esp, 8
test eax, eax
mov eax, ebp
jne 0x58474f
call fcn.00582c30
jmp 0x58472a
cmp al, 0x17
je case.0x584489.1
cmp al, 0x16
jne case.0x584489.0
lea eax, [esp + 0x18]
push eax
push ebp
lea esi, [esp + 0x34]
call fcn.0057f440
mov ebx, 1
add esp, 8
cmp eax, ebx
jne case.0x584489.1
push ebp
lea ecx, [esp + 0x1c]
call fcn.0057f1f0
add esp, 4
cmp eax, ebx
jne case.0x584489.1
lea edi, [esp + 0x17]
lea edx, [esp + 0x18]
mov eax, ebp
call fcn.0057f250
test eax, eax
jne case.0x584489.1
mov ecx, edx
push ecx
mov eax, ebp
call fcn.00581650
add esp, 4
test eax, eax
jne 0x58478c
movzx eax, byte [esp + 0x17]
cmp eax, 0x14
ja case.0x584489.1
movzx edx, byte [eax + 0x5847f8]
jmp dword [edx*4 + 0x5847dc]
push ebp
lea esi, [esp + 0xac]
lea eax, [esp + 0x1c]
call fcn.00583cf0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x584760
mov eax, esi
mov ecx, ebp
call fcn.00582350
test eax, eax
jne case.0x584489.1
mov eax, esi
mov ecx, ebp
call fcn.00582180
test eax, eax
jne case.0x584489.1
jmp case.0x584489.0
lea esi, [ebp + 4]
push esi
push ebp
lea eax, [esp + 0x20]
call fcn.00580420
add esp, 8
test eax, eax
jne case.0x584489.1
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
push eax
push ecx
push esi
call fcn.00587e90
add esp, 0xc
cmp eax, ebx
jne case.0x584489.1
jmp case.0x584489.0
cmp byte [esp + 0x18], 0xe
jne case.0x584489.1
cmp dword [esp + 0x1c], 0
jne case.0x584489.1
cmp dword [ebp + 0xc44], ebx
jne 0x58457a
lea edx, [esp + 0x18]
push edx
push ebp
mov eax, 0x644d58
call fcn.00580320
add esp, 8
test eax, eax
jne 0x58478c
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.00583620
add esp, 8
cmp eax, ebx
mov eax, ebp
jne 0x58474f
lea ecx, [esp + 0x18]
push ecx
call fcn.00581650
add esp, 4
test eax, eax
jne 0x58478c
lea eax, [esp + 0x78]
mov ecx, ebp
call fcn.00580120
test eax, eax
jne case.0x584489.1
lea edx, [esp + 0x18]
push edx
lea ecx, [ebp + 4]
push ebp
lea eax, [esp + 0x80]
call fcn.00580170
add esp, 8
test eax, eax
push 0x30
push 0
jne 0x58476e
lea eax, [esp + 0x80]
push eax
call fcn.004b3a80
lea ecx, [esp + 0x24]
push ecx
push ebp
call fcn.00583620
add esp, 0x14
cmp eax, ebx
jne case.0x584489.1
lea edx, [esp + 0x18]
push edx
mov eax, ebp
call fcn.00581650
add esp, 4
test eax, eax
jne 0x58478c
cmp dword [ebp + 0xc44], ebx
jne 0x584637
lea eax, [esp + 0x18]
push eax
mov ecx, ebp
call fcn.005817a0
add esp, 4
test eax, eax
jne case.0x584489.1
lea ecx, [esp + 0x18]
push ecx
push ebp
call fcn.00583620
add esp, 8
cmp eax, ebx
mov eax, ebp
jne 0x58474f
lea edx, [esp + 0x18]
push edx
call fcn.00581650
add esp, 4
test eax, eax
jne 0x58478c
mov ecx, ebp
call fcn.00581c20
test eax, eax
jne case.0x584489.1
lea ecx, [esp + 0x2c]
mov edx, ebp
call fcn.00581af0
test eax, eax
jne 0x58478c
mov ebx, ecx
mov edi, ebp
call fcn.00583400
cmp eax, 1
jne 0x58478c
mov di, word [esp + 0x30]
cmp di, ax
jb 0x58478c
jne 0x584684
mov eax, dword [esp + 0x34]
mov byte [eax], 0
jmp 0x5846a1
mov ebx, dword [esp + 0x34]
movzx esi, di
lea ecx, [esi - 1]
push ecx
lea edx, [ebx + 1]
push edx
push ebx
call fcn.004b4630
add esp, 0xc
mov byte [esi + ebx - 1], 0
push 1
add di, 0xffff
push ebp
mov word [esp + 0x38], di
call fcn.005824e0
add esp, 8
test eax, eax
jne 0x58478c
lea eax, [esp + 0x18]
push eax
mov ecx, ebp
call fcn.00580e00
add esp, 4
test eax, eax
mov eax, ebp
jne 0x58474f
lea ecx, [esp + 0x18]
push ecx
call fcn.00581650
add esp, 4
test eax, eax
jne 0x58478c
lea esi, [esp + 0x48]
call fcn.0057f150
test eax, eax
jne 0x58478c
mov edi, esi
lea ecx, [esp + 0x18]
mov edx, ebp
call fcn.0057f530
test eax, eax
jne 0x584783
mov eax, esi
mov ecx, ebp
call fcn.005832a0
test eax, eax
jne 0x584783
mov ebx, esi
mov edi, ebp
call fcn.00583400
cmp eax, 1
jne 0x584787
call fcn.0057f1a0
test eax, eax
jne 0x58478c
lea edx, [esp + 0x2c]
mov ecx, ebp
call fcn.005836c0
mov ebx, 1
cmp eax, ebx
mov dword [esp + 0x44], eax
je 0x584284
jmp 0x584317
push 0x50
push 2
call fcn.005839a0
add esp, 8
jmp case.0x584489.1
cmp eax, 0xfffffffe
je 0x584317
jmp case.0x584489.1
lea edx, [esp + 0x80]
push edx
call fcn.004b3a80
add esp, 0xc
jmp case.0x584489.1
lea esi, [esp + 0x48]
call fcn.0057f1a0
push 0x50
push 2
mov eax, ebp
call fcn.005839a0
add esp, 8
jmp case.0x584489.1
lea eax, [esp + 0x18]
push eax
mov ecx, ebp
call fcn.00580530
add esp, 4
test eax, eax
je 0x5847c5
push 0x28
push 2
mov eax, ebp
call fcn.005839a0
add esp, 8
jmp case.0x584489.1
mov dword [ebp + 0x1028], 0
mov dword [ebp + 0x1058], ebx
jmp 0x584317