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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
xor eax, eax
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ecx
cmp ebx, eax
je 0x100592f6
mov edi, dword [ebp + 0xc]
cmp edi, eax
jne 0x10058785
mov dword [esp + 0x24], 0x62
jmp 0x1005878c
movzx edx, byte [edi]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
add eax, 0xffffffed
cmp eax, 0x87
ja case.default.0x100587a5
movzx eax, byte [eax + 0x100593e0]
jmp dword [eax*4 + 0x1005937c]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
mov ecx, dword [edi + 0x30]
mov edx, dword [eax + 0x10]
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*8]
jne 0x100587ce
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [eax + 1], 0
je case.0x100587a5.151
mov edx, dword [ebp + 0x10]
mov ecx, dword [ecx + 0xc]
push edx
mov edx, dword [eax + 4]
push ecx
push edx
push 3
mov eax, ebx
call fcn.1004a000
mov eax, dword [esp + 0x2c]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x24]
test eax, eax
jns 0x10058811
mov esi, dword [esi + 0x50]
add esi, dword [edi + 0x28]
mov dword [esp + 0x1c], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [edi + 2]
mov edx, dword [ebp + 0x10]
and ecx, 0x200
push ecx
mov ecx, dword [edi + 0x38]
push edx
push eax
mov eax, dword [edi + 0x28]
push eax
push ecx
push esi
call fcn.100581f0
add esp, 0x18
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
push edx
push 0
mov eax, edi
mov ecx, ebx
call fcn.10057cb0
mov eax, dword [esp + 0x24]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [edi + 4]
test edi, edi
je case.default.0x100587a5
mov eax, dword [ebp + 0x10]
push eax
push 0
push edi
mov eax, ebx
call fcn.10057b60
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
shr ecx, 2
push ecx
push edx
push 0
push eax
push 0
push 0x5e
mov eax, ebx
call fcn.1004a160
mov eax, dword [esp + 0x34]
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0x77
mov eax, ebx
call fcn.1004a100
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov edi, dword [edi + 4]
mov eax, dword [ebx]
shr esi, 2
sub esi, 3
push esi
add edi, 2
push eax
call fcn.10037660
mov edx, dword [ebp + 0x10]
push 0xffffffffffffffff
push eax
push 0
push edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0x79
mov eax, ebx
call fcn.1004a160
mov eax, dword [esp + 0x3c]
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 8]
and eax, 0xfffffffc
cmp eax, 4
ja 0x10058951
mov eax, dword [ebx + 0xc]
dec eax
js 0x10058951
mov ecx, ebx
call fcn.1004a890
cmp byte [eax], 0x1b
jne 0x10058951
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
add edx, ecx
cmp edx, dword [edi + 0x24]
jne 0x10058951
mov edx, dword [eax + 8]
add edx, ecx
cmp edx, dword [ebp + 0x10]
jne 0x10058951
cmp dword [eax + 0x10], 0
jne 0x10058951
inc ecx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0x24]
push 1
push eax
push ecx
push 0x1b
mov eax, ebx
call fcn.1004a000
mov eax, dword [edi + 8]
shr eax, 2
add esp, 0x10
cmp eax, 1
jbe case.default.0x100587a5
mov edx, dword [edi + 4]
push eax
push edx
push ebx
or eax, 0xffffffff
call fcn.1004a760
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x24]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov edi, dword [edi + 0x14]
push ecx
push edi
push esi
call fcn.10058740
add esp, 0xc
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov eax, dword [edi + 0x14]
push edx
push eax
push esi
call fcn.10058740
add esp, 0xc
lea edx, [edi + 4]
mov dword [esp + 0x1c], eax
call fcn.1005f390
mov ecx, dword [ebp + 0x10]
movsx edi, al
add edi, 0x2c
cmp dword [esp + 0x1c], ecx
je 0x10058a03
mov eax, dword [esp + 0x1c]
mov edx, ecx
push edx
push eax
push 9
mov eax, ebx
call fcn.1004a100
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
push edx
push edi
mov eax, ebx
call fcn.1004a0b0
mov ecx, dword [esp + 0x24]
push 1
mov eax, esi
call fcn.10058480
add esp, 0xc
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [edi + 0x14]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x3c]
push eax
mov eax, dword [edi + 0x18]
push esi
call fcn.10055a10
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
add esp, 0x14
push 0x10
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [edi + 0x18]
push ecx
mov ecx, dword [edi + 0x14]
push esi
call fcn.10055a70
add esp, 0x18
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 8]
test edx, edx
je case.0x100587a5.21
mov bl, byte [esi + 0x15]
cmp bl, 8
jae case.0x100587a5.21
xor eax, eax
lea ecx, [esi + 0x60]
jmp 0x10058a90
cmp dword [ecx + 0x10], edx
je 0x10059363
inc eax
add ecx, 0x18
cmp eax, 0xa
jl 0x10058a90
movzx eax, bl
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x15]
cmp dword [esp + 0x10], 0
je case.default.0x100587a5
mov dl, byte [esi + 0x15]
cmp dl, 8
jae case.default.0x100587a5
xor eax, eax
lea ecx, [esi + 0x60]
mov edi, dword [esp + 0x10]
cmp dword [ecx + 0x10], edi
je 0x1005936c
inc eax
add ecx, 0x18
cmp eax, 0xa
jl 0x10058ac0
movzx ecx, dl
mov dword [esi + ecx*4 + 0x18], edi
inc byte [esi + 0x15]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x20]
mov eax, edi
mov ecx, dword [eax + 0x14]
push edx
call fcn.10059470
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x14]
add esp, 4
push ecx
mov ecx, dword [edx + 0x18]
mov edi, eax
call fcn.10059470
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x28]
add esp, 4
push ecx
push edi
push eax
push edx
mov eax, ebx
call fcn.1004a000
add esp, 0x10
jmp 0x10058a70
mov eax, dword [edi + 0x14]
mov cl, byte [eax]
cmp cl, 0x82
jne 0x10058b5a
mov eax, dword [eax + 4]
test eax, eax
je 0x10058bbc
mov ecx, dword [ebp + 0x10]
push ecx
push 1
push eax
mov eax, ebx
call fcn.10057b60
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x10058a70
cmp cl, 0x81
jne 0x10058b7b
mov edx, dword [ebp + 0x10]
push edx
push 1
mov ecx, ebx
call fcn.10057cb0
mov eax, dword [ebp + 0x10]
add esp, 8
mov dword [esp + 0x1c], eax
jmp 0x10058a70
mov ecx, esi
call fcn.1005a400
mov edi, eax
push edi
push 0
push 0x30
mov eax, ebx
mov dword [esp + 0x2c], edi
call fcn.1004a100
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x14]
lea eax, [esp + 0x1c]
add esp, 0xc
push eax
call fcn.10059470
mov edx, dword [ebp + 0x10]
add esp, 4
push edx
push edi
push eax
push 0x55
mov eax, ebx
call fcn.1004a000
add esp, 0x10
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
jmp 0x10058a70
lea ecx, [esp + 0x20]
mov edx, edi
push ecx
mov ecx, dword [edx + 0x14]
call fcn.10059470
mov ecx, dword [ebp + 0x10]
add esp, 4
push ecx
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, ebx
mov dword [esp + 0x28], ecx
call fcn.1004a100
add esp, 0xc
jmp 0x10058a70
mov edi, dword [ebp + 0x10]
push edi
push 1
push 0x30
mov eax, ebx
call fcn.1004a100
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x2c]
add esp, 0xc
push ecx
mov ecx, dword [edx + 0x14]
call fcn.10059470
add esp, 4
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, ebx
call fcn.1004a0b0
push 0xffffffffffffffff
mov esi, eax
push edi
push 0x2a
mov eax, ebx
call fcn.1004a100
add esp, 0x14
mov eax, esi
mov ecx, ebx
call fcn.1004a590
jmp 0x10058a70
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x10058c6c
add edi, 0xc
push edi
push str.misuse_of_aggregate:__T
push esi
call fcn.10036b20
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x30]
mov edx, dword [eax + 0x20]
add ecx, ecx
mov eax, dword [edx + ecx*8 + 8]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x39]
xor ecx, ecx
mov edx, 0xc000
mov dword [esp + 0x18], ecx
mov byte [esp + 0x14], al
mov dword [esp + 0xc], ecx
test word [edi + 2], dx
je 0x10058d01
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 0
push edx
mov edx, dword [esp + 0x18]
push edx
shr eax, 2
push eax
mov eax, dword [esp + 0x38]
push ecx
push eax
call fcn.100637d0
add esp, 0x18
cmp dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
je 0x10058d14
mov ecx, dword [esp + 0x10]
push ecx
push esi
call fcn.1005a450
push 1
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
push esi
call fcn.10059780
add esp, 0x14
jmp 0x10058d1c
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x20], eax
cmp eax, ecx
je 0x10058cad
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jmp 0x10058cb1
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x10]
cmp eax, 2
jl 0x10058d3d
test byte [edi + 2], 0x80
je 0x10058d3d
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [ecx + 0x10]
push edx
jmp 0x10058d50
test eax, eax
jle 0x10058d64
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x30]
call fcn.1007c1f0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
add esp, 8
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], 1
cmp eax, edi
jle 0x10058dde
cmp edi, 0x200
jge 0x10058dde
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xc]
mov eax, dword [edi + edx]
call fcn.100571f0
test eax, eax
je 0x10058d99
mov eax, dword [esp + 0x2c]
or dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
test byte [ecx + 3], 8
je 0x10058dc2
cmp dword [esp + 0xc], 0
jne 0x10058dc2
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ecx, dword [edi + eax]
push ecx
push esi
call fcn.100557f0
add esp, 8
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
inc eax
add edi, 0x10
rol edx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edx
cmp eax, dword [esp + 0x10]
jl 0x10058d76
mov eax, dword [esp + 0x24]
test byte [eax + 3], 8
je 0x10058e13
cmp dword [esp + 0xc], 0
jne 0x10058dfa
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
push 0xfffffffffffffffc
push eax
push 0
push 0
push 0
push 0xc
mov eax, ebx
call fcn.1004a160
add esp, 0x18
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x10]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
push 0xfffffffffffffffb
push ecx
push edx
push edi
push eax
push 0x16
mov eax, ebx
call fcn.1004a160
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x28]
add esp, 0x18
test eax, eax
je 0x10058e49
mov ebx, dword [ebx + 0xc]
lea edx, [ebx + ebx*4]
mov byte [eax + edx*4 - 0x11], cl
test ecx, ecx
je 0x10058e58
cmp ecx, dword [esi + 0x38]
jle 0x10058e58
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edi
push ecx
mov ecx, edi
mov eax, esi
call fcn.10058480
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x28], 0
jne 0x10058e86
push 0
push 0
mov edx, edi
mov ecx, esi
call fcn.100577c0
add esp, 8
mov eax, dword [edi + 0x28]
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xc]
push ecx
xor eax, eax
push edi
mov edi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
call fcn.100573a0
add esp, 8
cmp dword [esp + 0xc], 0
mov dword [esp + 0x18], eax
je 0x10058ec3
inc dword [esi + 0x48]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x14], edx
mov edi, dword [ebp + 0xc]
mov esi, edi
call fcn.10055970
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x54]
mov esi, dword [ebp + 0x10]
mov byte [esp + 0x37], al
mov eax, dword [edi + 0x14]
mov edi, ecx
call fcn.100594f0
mov eax, esi
push eax
push 0x47
mov eax, ebx
call fcn.1004a0b0
add esp, 8
cmp dword [esp + 0x18], 1
mov dword [esp + 0x28], eax
jne 0x10058f5e
push esi
push 0x26
mov eax, ebx
call fcn.1004a0b0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
push esi
push 0
push edx
mov edi, eax
push 0x2e
mov eax, ebx
call fcn.1004a000
push esi
mov dword [esp + 0x34], eax
push 1
push 0x30
mov eax, ebx
call fcn.1004a100
add esp, 0x24
push 0x60
mov eax, ebx
call fcn.1004a060
mov dword [esp + 0x30], eax
add esp, 4
mov eax, edi
mov ecx, ebx
call fcn.1004a590
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.1004a590
push esi
push 0
push 0x30
jmp 0x10059040
mov ecx, edi
call fcn.1005a400
mov edi, dword [ebp + 0x10]
mov esi, eax
push 1
lea eax, [esp + 0x3b]
push eax
push esi
push 1
push edi
push 0x4f
mov eax, ebx
mov dword [esp + 0x28], esi
call fcn.1004a160
push edi
push 1
push 0x30
mov eax, ebx
call fcn.1004a100
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
add esp, 0x24
push esi
push 0
push edx
push 0x80
mov eax, ebx
call fcn.1004a000
mov esi, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x2c], eax
test esi, esi
jne 0x10058fbf
push edi
push esi
push 0x30
jmp 0x10059040
mov eax, dword [esp + 0xc]
push eax
push 0x48
mov eax, ebx
call fcn.1004a0b0
push esi
mov dword [esp + 0x20], eax
push 0
push 0x77
mov eax, ebx
call fcn.1004a100
mov ecx, dword [esp + 0x20]
add esp, 0x14
push 0xfffffffffffffffe
push 0x100e44b4
push 0
push ecx
push 2
push 0x79
mov eax, ebx
call fcn.1004a160
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x24]
push edx
push 0
push ecx
push 0x80
mov eax, ebx
call fcn.1004a000
push esi
mov dword [esp + 0x44], eax
push 0
push 0x30
mov eax, ebx
call fcn.1004a100
mov eax, dword [esp + 0x4c]
add esp, 0x34
mov ecx, ebx
call fcn.1004a590
mov eax, dword [esp + 0x14]
mov ecx, ebx
call fcn.1004a590
push edi
push esi
push 0x14
mov eax, ebx
call fcn.1004a100
mov eax, dword [esp + 0x34]
add esp, 0xc
mov ecx, ebx
call fcn.1004a590
mov eax, dword [esp + 0x2c]
mov ecx, ebx
call fcn.1004a590
mov eax, dword [ebp + 8]
call fcn.10058060
mov esi, eax
jmp case.0x100587a5.21
mov eax, edi
mov edx, dword [eax + 0x1c]
mov esi, dword [edx + 0xc]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi]
mov edi, dword [ebp + 8]
lea edx, [esp + 0x10]
push edx
lea edx, [esp + 0x1c]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x3c]
push edx
push edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
call fcn.10055a10
add esp, 0x14
mov ecx, edi
call fcn.1005a400
mov edx, eax
mov dword [esp + 0x28], edx
call fcn.1005a400
mov ecx, dword [esp + 0x30]
push 0x10
push edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
push 0x4e
push edi
call fcn.10055a70
mov edx, dword [esi + 0x10]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov edx, edi
call fcn.1005a420
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x28]
push eax
mov esi, edi
call fcn.10059470
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add esp, 0x1c
push 0x10
push esi
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
push 0x4c
push edi
call fcn.10055a70
mov edx, dword [ebp + 0x10]
push edx
push esi
mov esi, dword [esp + 0x48]
push esi
push 0x43
mov eax, ebx
call fcn.1004a000
add esp, 0x28
mov edx, edi
call fcn.1005a420
mov esi, dword [esp + 0x2c]
call fcn.1005a420
jmp 0x10058a70
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0x14]
push eax
push ecx
push esi
call fcn.10058740
add esp, 0xc
mov dword [esp + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1c]
mov edx, dword [eax + 0xc]
mov eax, dword [eax]
push ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
call fcn.1004a1d0
mov edi, dword [edi + 0x14]
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
test edi, edi
je 0x100591d2
mov eax, edi
mov esi, eax
mov ecx, 0x10
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.10059470
mov dword [esp + 0x60], eax
lea edx, [esp + 0x3c]
lea eax, [esp + 0x7c]
add esp, 4
mov byte [esp + 0x38], 0x84
mov byte [esp + 0x78], 0x4a
mov dword [esp + 0x8c], edx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x14], 0
jle 0x10059286
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
dec eax
shr eax, 1
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
inc dword [eax + 0x54]
cmp dword [esp + 0x2c], 0
je 0x1005920d
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
mov dword [esp + 0x90], eax
jmp 0x10059217
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
push ebx
call fcn.1004a1d0
mov edi, dword [ebp + 8]
add esp, 4
push 8
push eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
push eax
push edi
call fcn.10059c70
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x10]
mov eax, dword [ecx + 0x10]
call fcn.100594f0
mov edx, dword [esp + 0x38]
push edx
push 0
push 0x60
mov eax, ebx
call fcn.1004a100
add esp, 0x1c
mov eax, edi
call fcn.10058060
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x10059277
mov ecx, dword [esp + 0x30]
lea edx, [ecx*4 + 4]
mov ecx, dword [ebx + 0xc]
sub eax, edx
mov dword [eax], ecx
add dword [esp + 0xc], 0x20
dec dword [esp + 0x14]
jne 0x100591f1
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x18], 0
je 0x100592ab
mov edi, dword [ebp + 8]
inc dword [edi + 0x54]
mov esi, dword [ebp + 0x10]
mov eax, edx
mov eax, dword [eax + 0x18]
call fcn.100594f0
mov eax, edi
call fcn.10058060
jmp 0x100592bd
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0x77
mov eax, ebx
call fcn.1004a100
add esp, 0xc
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x10058a70
mov edx, dword [esp + 0x28]
lea ecx, [edx*4 + 4]
mov edx, dword [ebx + 0xc]
sub eax, ecx
mov dword [eax], edx
jmp 0x10058a70
cmp dword [esi + 0x1e4], 0
jne 0x100592ff
push str.RAISE___may_only_be_used_within_a_trigger_program
push esi
call fcn.10036b20
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 1]
cmp al, 4
je 0x10059330
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
shr ecx, 2
push ecx
push edx
movsx eax, al
push 0
push eax
push 0x13
push 0x27
mov eax, ebx
call fcn.1004a160
mov eax, dword [esp + 0x34]
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x69
mov eax, ebx
call fcn.1004a100
mov ecx, dword [esi + 0x1e4]
mov edx, dword [ecx + 0x18]
add esp, 0xc
push edx
push 0
push 0x60
mov eax, ebx
call fcn.1004a100
mov eax, dword [esp + 0x28]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ecx + 9], 1
jmp case.0x100587a5.21
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov byte [ecx + 9], 1
pop ebx
mov esp, ebp
pop ebp
ret