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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x6ece84]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0xc], 0
mov byte [ebp - 8], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xf4], 0
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xec], ebx
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0xcc], eax
test ecx, ecx
jne 0x56169c
lea eax, [ecx + 7]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005e9f40
mov esp, ebp
pop ebp
ret
movzx edx, word [ebx + 0x12]
movzx ecx, byte [ebx + 1]
push esi
push edi
lea esi, [ecx + edx]
cmp esi, 2
jae 0x5616b2
xor edi, edi
jmp 0x5616d8
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x5616bd
xor edi, edi
jmp 0x5616ce
cmp eax, esi
jne 0x5616cb
mov eax, dword [ebp + 0x18]
lea edi, [eax - 2]
add edi, esi
jmp 0x5616d1
lea edi, [eax - 1]
mov eax, dword [ebp + 0x18]
mov esi, 2
sub esi, eax
lea eax, [esi + 1]
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0xe0], eax
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x104], esi
lea ecx, [eax + esi]
cmp ecx, edx
jne 0x561701
movzx ecx, byte [ebx + 6]
add ecx, 8
jmp 0x561715
mov eax, dword [ebx + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x14]
movzx ecx, cx
and ecx, eax
add ecx, dword [ebx + 0x38]
lea edi, [esi*4]
mov dword [ebp - 0xc8], ecx
mov eax, dword [ecx]
bswap eax
mov dword [ebp - 0xf0], eax
mov ebx, eax
mov dword [ebp - 0x108], eax
nop word [eax + eax]
mov eax, dword [ebp - 0xcc]
cmp ebx, dword [eax + 0x2c]
jbe 0x561774
push 0x68a82c
push 0xd9c5
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0055bef0
mov ebx, 0xb
add esp, 0x10
mov dword [ebp - 0xac], ebx
jmp 0x561800
push 0
lea ecx, [ebp - 0xbc]
push ecx
push ebx
push dword [eax]
call fcn.00595900
add esp, 0x10
mov dword [ebp - 0xac], eax
test eax, eax
jne 0x5617fa
mov ecx, dword [ebp - 0xbc]
cmp ebx, 1
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0xcc]
mov dword [edx + 0x34], eax
setne al
dec al
mov dword [edx + 0x48], ecx
and al, 0x64
mov dword [edx + 0x54], ebx
mov byte [edx + 6], al
mov dword [ebp + edi - 0x24], edx
cmp byte [edx], 0
jne 0x5617f0
push edx
call fcn.00563ab0
mov ebx, eax
add esp, 4
mov dword [ebp - 0xac], ebx
test ebx, ebx
je 0x5617f0
mov eax, dword [ebp + edi - 0x24]
test eax, eax
je 0x561800
push dword [eax + 0x48]
call fcn.00597440
add esp, 4
jmp 0x561800
xor ebx, ebx
mov dword [ebp - 0xac], ebx
jmp 0x561800
mov ebx, dword [ebp - 0xac]
mov dword [ebp - 0xb8], ebx
test ebx, ebx
jne 0x562b1b
mov eax, dword [ebp + edi - 0x24]
sub edi, 4
movzx ecx, word [eax + 0x12]
movzx eax, byte [eax + 1]
inc eax
add eax, dword [ebp - 0xb4]
add ecx, eax
mov eax, esi
dec esi
mov dword [ebp - 0xb4], ecx
test eax, eax
je 0x5619a2
mov edx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xfc]
movzx ecx, word [edx + 0x16]
lea eax, [ebx + esi]
cmp eax, ecx
jne 0x56188b
cmp byte [edx + 1], 0
je 0x56188b
mov eax, dword [edx + 0x20]
push eax
mov dword [ebp + edi - 0x18], eax
push edx
mov ebx, dword [eax]
mov eax, dword [edx + 0x4c]
bswap ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0x108], ebx
call eax
movzx eax, ax
add esp, 8
mov dword [ebp + edi - 0x4c], eax
mov eax, dword [ebp - 0xec]
mov byte [eax + 1], 0
jmp 0x561740
movzx eax, byte [edx + 1]
mov ecx, ebx
sub ecx, eax
mov eax, dword [edx + 0x40]
add ecx, esi
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edx + 0x14]
movzx ecx, cx
and ecx, eax
mov eax, dword [edx + 0x38]
add eax, ecx
push eax
mov dword [ebp - 0xb0], eax
mov dword [ebp + edi - 0x18], eax
mov ecx, dword [eax]
mov eax, dword [edx + 0x4c]
bswap ecx
push edx
mov dword [ebp - 0xf0], ecx
mov ebx, ecx
mov dword [ebp - 0x108], ecx
call eax
mov ecx, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [ebp - 0xec]
movzx eax, ax
mov dword [ebp - 0xc0], eax
test byte [ecx + 0x16], 4
mov dword [ebp + edi - 0x4c], eax
je 0x561946
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0xcc]
add eax, ecx
cmp eax, dword [edx + 0x24]
mov edx, dword [ebp - 0xb0]
jg 0x56196b
push dword [ebp - 0xc0]
mov eax, dword [ebp - 0x11c]
push edx
add eax, ecx
push eax
call fcn.006072a0
mov edx, dword [ebp - 0xec]
add esp, 0xc
mov eax, dword [ebp - 0x11c]
sub eax, dword [edx + 0x38]
add eax, dword [ebp - 0xb0]
mov dword [ebp + edi - 0x18], eax
mov eax, dword [ebp - 0xc0]
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, dword [ebp - 0xfc]
push eax
movzx eax, byte [edx + 1]
sub ecx, eax
add ecx, esi
push ecx
push edx
call fcn.00569a70
add esp, 0x10
jmp 0x561740
push 0x68a82c
push 0xeda4
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0055bef0
lea eax, [edi + 4]
mov dword [ebp - 0xac], 0xb
push eax
lea eax, [ebp - 0x24]
push 0
push eax
call fcn.00607da0
add esp, 0x1c
jmp 0x562b2d
mov eax, dword [ebp - 0xcc]
lea esi, [ecx + 3]
and esi, 0xfffffffc
mov eax, dword [eax + 0x20]
lea edi, [esi + esi*2]
add edi, edi
add eax, edi
push eax
call fcn.0059e710
mov ebx, eax
add esp, 4
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xd4], ebx
test ebx, ebx
jne 0x5619e2
mov dword [ebp - 0xac], 7
jmp 0x562b2d
mov ecx, dword [ebp - 0x24]
lea eax, [edi + ebx]
mov dword [ebp - 0xbc], eax
lea edx, [ebx + esi*4]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xd8], ecx
movzx eax, byte [ecx + 5]
shl ax, 2
movzx eax, ax
mov dword [ebp - 0x100], eax
mov al, byte [ecx + 3]
mov byte [ebp - 0xa5], al
movzx eax, al
mov dword [ebp - 0xf8], eax
xor eax, eax
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe0], eax
jle 0x561cde
nop dword [eax]
nop dword [eax + eax]
shl eax, 2
mov dword [ebp - 0x118], eax
mov ebx, dword [ebp + eax - 0x24]
mov dword [ebp - 0xc0], ebx
movzx eax, word [ebx + 0x14]
mov edi, dword [ebx + 0x38]
mov ecx, eax
movzx esi, word [ebx + 0xe]
mov dword [ebp - 0x114], eax
add esi, edi
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xb4], esi
mov ecx, dword [eax + 0x38]
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x561e82
movzx eax, word [ebx + 0x12]
mov dword [ebp - 0x10c], eax
add eax, eax
push eax
mov eax, dword [ebp - 0xdc]
push 0
lea eax, [edx + eax*2]
push eax
call fcn.00607da0
mov al, byte [ebx + 1]
add esp, 0xc
test al, al
je 0x561b6b
mov ecx, dword [ebp - 0xd0]
movzx eax, al
add eax, eax
push eax
mov eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0xdc]
push 0
lea eax, [ecx + eax*2]
push eax
call fcn.00607da0
movzx edx, word [ebx + 0x16]
add esp, 0xc
test edx, edx
je 0x561b31
mov ebx, dword [ebp - 0x110]
nop word [eax + eax]
mov ax, word [esi]
add esi, 2
mov ch, al
mov cl, ah
movzx eax, bx
movzx ecx, cx
and ecx, eax
mov eax, dword [ebp - 0xdc]
add ecx, edi
mov edi, dword [ebp - 0xf4]
mov dword [edi + eax*4], ecx
inc eax
mov edi, dword [ebp - 0xb0]
mov dword [ebp - 0xdc], eax
sub edx, 1
jne 0x561af0
mov ebx, dword [ebp - 0xc0]
mov dword [ebp - 0xb4], esi
xor edx, edx
cmp byte [ebx + 1], dl
jbe 0x561b6b
mov edi, dword [ebp - 0xdc]
lea ecx, [ebx + 0x20]
mov esi, dword [ebp - 0xf4]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [esi + edi*4], eax
inc edx
movzx eax, byte [ebx + 1]
inc edi
cmp edx, eax
jl 0x561b47
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0xdc], edi
mov edi, dword [ebp - 0xb0]
movzx eax, word [ebx + 0xe]
xor edx, edx
movzx ecx, word [ebx + 0x12]
add eax, edi
lea eax, [eax + ecx*2]
xor ecx, ecx
mov edi, eax
sub edi, esi
inc edi
shr edi, 1
cmp esi, eax
cmova edi, ecx
test edi, edi
je 0x561bd7
mov ebx, dword [ebp - 0xb0]
mov ax, word [esi]
lea esi, [esi + 2]
mov ch, al
inc edx
mov cl, ah
mov eax, dword [ebp - 0x114]
movzx ecx, cx
movzx eax, ax
and ecx, eax
mov eax, dword [ebp - 0xdc]
add ecx, ebx
mov ebx, dword [ebp - 0xf4]
mov dword [ebx + eax*4], ecx
mov ecx, eax
mov ebx, dword [ebp - 0xb0]
inc ecx
mov dword [ebp - 0xdc], ecx
cmp edx, edi
jb 0x561b92
mov ebx, dword [ebp - 0xc0]
jmp 0x561bdd
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0xe4]
mov dword [ebp + edx - 0xa4], ecx
cmp eax, dword [ebp - 0x104]
jge 0x561cc5
cmp byte [ebp - 0xa5], 0
jne 0x561cc5
mov esi, dword [ebp - 0xd0]
movzx eax, word [ebp + edx - 0x4c]
mov edi, dword [ebp - 0xe8]
push eax
push dword [ebp + edx - 0x18]
mov word [esi + ecx*2], ax
mov esi, dword [ebp - 0xbc]
add esi, edi
add edi, eax
push esi
mov dword [ebp - 0xe8], edi
call fcn.006072a0
mov eax, dword [ebp - 0x100]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xd0]
movzx eax, ax
add eax, esi
mov esi, dword [ebp - 0xf4]
mov dword [esi + ecx*4], eax
mov eax, dword [ebp - 0x100]
sub word [edx + ecx*2], ax
cmp byte [ebx + 5], 0
jne 0x561c8c
mov eax, dword [ebx + 0x38]
mov ecx, dword [esi + ecx*4]
mov eax, dword [eax + 8]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
inc ecx
mov dword [ebp - 0xdc], ecx
jmp 0x561ccb
cmp word [edx + ecx*2], 4
jae 0x561cb6
mov eax, dword [ebp - 0xbc]
nop dword [eax]
mov byte [eax + edi], 0
inc edi
inc word [edx + ecx*2]
cmp word [edx + ecx*2], 4
jb 0x561ca0
mov dword [ebp - 0xe8], edi
mov eax, dword [ebp - 0xe4]
inc ecx
mov dword [ebp - 0xdc], ecx
jmp 0x561ccb
mov edx, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xe4], eax
cmp eax, dword [ebp - 0xe0]
jl 0x561a40
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0xe0]
movzx ecx, ax
mov eax, dword [ebp - 0xcc]
add ecx, 0xfffffff4
mov edi, dword [eax + 0x24]
add edi, ecx
xor ecx, ecx
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xb4], ecx
test edx, edx
jle 0x561da1
mov esi, dword [ebp + ecx*4 - 0x24]
movzx eax, word [esi + 0x10]
sub edi, eax
lea eax, [ebp - 0x4c]
lea eax, [eax + ecx*4]
mov dword [eax], edi
mov dword [ebp - 0x104], eax
js 0x561eaa
cmp byte [esi + 1], 0
mov dword [ebp - 0xbc], 0
jbe 0x561d81
lea ebx, [esi + 0x20]
push dword [ebx]
mov eax, dword [esi + 0x4c]
push esi
call eax
mov ecx, dword [ebp - 0xbc]
lea ebx, [ebx + 4]
movzx eax, ax
inc ecx
add eax, 2
mov dword [ebp - 0xbc], ecx
add edi, eax
add esp, 8
movzx eax, byte [esi + 1]
cmp ecx, eax
jl 0x561d42
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xe0]
mov dword [eax], edi
mov eax, dword [ebp + ecx*4 - 0xa4]
mov edi, dword [ebp - 0xe8]
mov dword [ebp + ecx*4 - 0x60], eax
inc ecx
mov dword [ebp - 0xb4], ecx
cmp ecx, edx
jl 0x561d11
mov dword [ebp - 0xc0], 0
mov eax, edx
mov dword [ebp - 0xe4], eax
test edx, edx
jle 0x561fff
mov edx, dword [ebp - 0xdc]
mov ebx, 1
xor ecx, ecx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb0], ecx
mov esi, dword [ebp + ecx - 0x4c]
cmp esi, edi
jle 0x561ede
cmp ebx, eax
jl 0x561e06
lea eax, [ebx + 1]
mov dword [ebp - 0xe4], eax
cmp eax, 5
jg 0x561fe1
mov dword [ebp + ecx - 0x48], 0
mov esi, dword [ebp + ecx - 0x4c]
mov dword [ebp + ecx - 0x5c], edx
mov edi, dword [ebp + ecx - 0x60]
mov edx, dword [ebp - 0xd0]
lea ebx, [edi - 1]
movzx eax, word [edx + ebx*2]
test ax, ax
jne 0x561e3b
lea eax, [ebp - 0xdc]
push ebx
push eax
call fcn.00566d90
mov ecx, dword [ebp - 0xb0]
add esp, 8
mov edx, dword [ebp - 0xd0]
movzx eax, ax
movzx eax, ax
add eax, 2
sub esi, eax
cmp byte [ebp - 0xa5], 0
mov dword [ebp + ecx - 0x4c], esi
jne 0x561eb8
cmp edi, dword [ebp - 0xdc]
jge 0x561eb6
movzx eax, word [edx + edi*2]
test ax, ax
jne 0x561e74
lea eax, [ebp - 0xdc]
push edi
push eax
call fcn.00566d90
add esp, 8
movzx eax, ax
mov ecx, dword [ebp - 0xb0]
movzx eax, ax
add eax, 2
jmp 0x561eb8
push 0x68a82c
push 0xede7
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0055bef0
add esp, 0x10
mov dword [ebp - 0xac], 0xb
jmp 0x562b2d
push 0x68a82c
push 0xee4a
jmp 0x561e8c
xor eax, eax
add dword [ebp + ecx - 0x48], eax
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
mov dword [ebp + ecx - 0x60], ebx
mov ebx, dword [ebp - 0xb4]
cmp esi, dword [ebp - 0xe8]
jg 0x561de0
mov edi, dword [ebp + ecx - 0x60]
cmp edi, edx
jge 0x561f8c
nop word [eax + eax]
mov eax, dword [ebp - 0xd0]
movzx eax, word [eax + edi*2]
test ax, ax
jne 0x561f1e
lea eax, [ebp - 0xdc]
push edi
push eax
call fcn.00566d90
mov ecx, dword [ebp - 0xb0]
add esp, 8
mov edx, dword [ebp - 0xdc]
movzx eax, ax
movzx eax, ax
add eax, 2
add esi, eax
cmp esi, dword [ebp - 0xe8]
jg 0x561fc0
inc edi
mov dword [ebp + ecx - 0x4c], esi
cmp byte [ebp - 0xa5], 0
mov dword [ebp + ecx - 0x60], edi
jne 0x561f80
cmp edi, edx
jge 0x561f7e
mov eax, dword [ebp - 0xd0]
movzx eax, word [eax + edi*2]
test ax, ax
jne 0x561f70
lea eax, [ebp - 0xdc]
push edi
push eax
call fcn.00566d90
mov edx, dword [ebp - 0xdc]
add esp, 8
movzx eax, ax
mov ecx, dword [ebp - 0xb0]
movzx eax, ax
add eax, 2
jmp 0x561f80
xor eax, eax
sub dword [ebp + ecx - 0x48], eax
cmp edi, edx
jl 0x561ef0
mov eax, ebx
mov dword [ebp - 0xe4], eax
mov edi, dword [ebp - 0xc0]
add ecx, 4
inc edi
mov dword [ebp - 0xb0], ecx
inc ebx
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xb4], ebx
cmp edi, eax
jge 0x561fff
mov edi, dword [ebp - 0xe8]
jmp 0x561dd4
cmp edi, edx
jge 0x561f8c
cmp dword [ebp - 0xc0], 0
jle 0x561fd3
mov eax, dword [ebp + ecx - 0x64]
jmp 0x561fd5
xor eax, eax
cmp edi, eax
jle 0x561ff0
mov eax, dword [ebp - 0xe4]
jmp 0x561f94
push 0x68a82c
push 0xee56
jmp 0x561e8c
push 0x68a82c
push 0xee77
jmp 0x561e8c
lea ecx, [eax - 1]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
jle 0x562185
shl ecx, 2
lea eax, [ebp - 0x4c]
add eax, ecx
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x110], eax
mov edi, dword [eax]
lea eax, [ebp + ecx - 0x50]
mov dword [ebp - 0x10c], eax
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x60]
sub eax, 4
mov dword [ebp - 0xbc], eax
mov ebx, dword [ecx + eax]
mov ecx, dword [ebp - 0xd0]
lea esi, [ebx - 1]
mov eax, esi
sub eax, dword [ebp - 0xf8]
inc eax
cmp word [ecx + eax*2], 0
lea ecx, [ecx + eax*2]
mov dword [ebp - 0xb4], ecx
jne 0x562080
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00566d90
add esp, 8
nop dword [eax]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x118], esi
cmp word [eax + esi*2], 0
jne 0x5620af
lea eax, [ebp - 0xdc]
push esi
push eax
call fcn.00566d90
mov eax, dword [ebp - 0xd0]
add esp, 8
test edi, edi
je 0x5620e0
cmp dword [ebp + 0x18], 0
mov edx, ebx
jne 0x56213c
movzx eax, word [eax + esi*2]
mov ecx, dword [ebp - 0xb0]
sub ecx, eax
mov eax, dword [ebp - 0xb4]
sub ecx, 2
movzx eax, word [eax]
add eax, 2
add eax, edi
cmp eax, ecx
jg 0x56213c
mov edx, dword [ebp - 0xb4]
mov ecx, 0xfffffffe
mov ebx, dword [ebp - 0xbc]
movzx eax, word [edx]
sub edx, 2
add eax, 2
mov dword [ebp - 0xb4], edx
mov edx, dword [ebp - 0x114]
add edi, eax
mov eax, dword [ebp - 0xd0]
movzx eax, word [eax + esi*2]
sub ecx, eax
mov eax, dword [ebp - 0xb0]
add eax, ecx
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0xb0], eax
mov dword [ecx + ebx], esi
sub esi, 1
mov ebx, dword [ebp - 0x118]
jns 0x562080
jmp 0x562142
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x110]
mov dword [ecx], edi
mov ecx, dword [ebp - 0x10c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc0]
cmp ecx, 1
jle 0x562170
mov ebx, dword [ebp - 0xbc]
lea eax, [ecx*4]
mov eax, dword [ebx + eax - 4]
jmp 0x562172
xor eax, eax
cmp edx, eax
jle 0x5621f4
dec ecx
mov dword [ebp - 0xc0], ecx
test ecx, ecx
jg 0x562010
mov eax, dword [ebp - 0x24]
xor esi, esi
lea ebx, [esi + 1]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax]
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xe4], esi
jle 0x56230b
nop word [eax + eax]
cmp esi, dword [ebp - 0xe0]
jge 0x562246
mov eax, dword [ebp + esi*4 - 0x24]
mov dword [ebp + esi*4 - 0x38], eax
mov dword [ebp + esi*4 - 0x24], 0
mov dword [ebp - 0xbc], eax
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x18], 4
mov edx, dword [ecx + 0x10]
je 0x562207
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x14]
jb 0x562207
cmp dword [edx + 0x60], 0
je 0x562203
push ecx
call fcn.005b7170
jmp 0x562222
push 0x68a82c
push 0xeea1
jmp 0x561e8c
xor edi, edi
jmp 0x562227
mov eax, dword [edx + 0x94]
push ecx
cmp eax, dword [edx + 0x98]
jbe 0x56221d
call fcn.005766f0
jmp 0x562222
call fcn.00577760
add esp, 4
mov edi, eax
inc dword [ebp - 0xc4]
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb8], edi
test edi, edi
jne 0x562b2d
jmp 0x5622fe
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp - 0xf0]
push 0
cmovne eax, ebx
push eax
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0xcc]
call fcn.0055f590
mov edi, eax
add esp, 0x14
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb8], edi
test edi, edi
jne 0x562b2d
push dword [ebp - 0xb4]
mov edi, dword [ebp - 0xbc]
push edi
call fcn.005c6920
mov ecx, dword [ebp - 0xcc]
add esp, 8
inc dword [ebp - 0xc4]
mov eax, dword [ebp - 0xdc]
mov dword [ebp + esi*4 - 0x38], edi
cmp byte [ecx + 0x11], 0
mov dword [ebp + esi*4 - 0xa4], eax
je 0x5622f2
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0xec]
push dword [eax + 0x54]
push 5
push dword [edi + 0x54]
push ecx
call fcn.005795a0
mov edi, dword [ebp - 0xb8]
add esp, 0x14
mov dword [ebp - 0xac], edi
test edi, edi
jne 0x562b2d
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xf0], eax
inc esi
cmp esi, dword [ebp - 0xe4]
jl 0x5621b0
mov esi, dword [ebp - 0xc4]
xor ecx, ecx
test esi, esi
jle 0x562367
nop word [eax + eax]
mov eax, dword [ebp + ecx*4 - 0x38]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x48]
mov dword [ebp + ecx*4 - 0x8c], edx
mov dword [ebp + ecx*4 - 0x74], edx
mov ax, word [eax + 0x18]
mov word [ebp + ecx*2 - 0x18], ax
xor eax, eax
test ecx, ecx
jle 0x562362
nop dword [eax]
nop dword [eax + eax]
cmp dword [ebp + eax*4 - 0x8c], edx
je 0x562420
inc eax
cmp eax, ecx
jl 0x562350
inc ecx
cmp ecx, esi
jl 0x562320
xor ebx, ebx
mov dword [ebp - 0xb0], ebx
test esi, esi
jle 0x562576
xor edi, edi
lea edx, [edi + 1]
cmp esi, edx
jle 0x562394
mov eax, dword [ebp + edx*4 - 0x74]
mov ecx, edx
cmp eax, dword [ebp + edi*4 - 0x74]
cmovae ecx, edi
inc edx
mov edi, ecx
cmp edx, esi
jl 0x562380
mov eax, dword [ebp + edi*4 - 0x74]
mov dword [ebp - 0xf8], eax
mov dword [ebp + edi*4 - 0x74], 0xffffffff
cmp edi, ebx
je 0x562567
jle 0x562490
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax + 0x2c]
mov eax, dword [ebp + edi*4 - 0x38]
inc esi
add esi, edi
push esi
mov ebx, dword [eax + 0x48]
xor eax, eax
push dword [ebx + 0x14]
mov word [ebx + 0x18], ax
mov eax, dword [ebx + 0x1c]
push dword [ebx]
push dword [eax + 0x28]
call dword [0x6ebe24]
mov al, byte [ebx + 0x18]
add esp, 0x10
and al, 0xa
mov dword [ebx + 0x14], esi
cmp al, 0xa
jne 0x56248a
mov ecx, dword [ebx + 0x1c]
cmp dword [ecx + 8], ebx
jne 0x562411
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x56240e
test byte [eax + 0x18], 8
je 0x56240e
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x562401
mov dword [ecx + 8], eax
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
test edx, edx
je 0x56242f
mov dword [edx + 0x24], eax
jmp 0x562432
push 0x68a82c
push 0xeeeb
jmp 0x561e8c
mov dword [ecx + 4], eax
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
test edx, edx
je 0x562441
mov dword [edx + 0x20], eax
jmp 0x562450
mov dword [ecx], eax
test eax, eax
jne 0x562450
cmp byte [ecx + 0x1c], al
je 0x562450
mov byte [ecx + 0x1d], 2
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov eax, dword [ecx]
mov dword [ebx + 0x20], eax
test eax, eax
je 0x56246c
mov dword [eax + 0x24], ebx
jmp 0x562479
cmp byte [ecx + 0x1c], 0
mov dword [ecx + 4], ebx
je 0x562479
mov byte [ecx + 0x1d], 1
cmp dword [ecx + 8], 0
mov dword [ecx], ebx
jne 0x56248a
test byte [ebx + 0x18], 8
jne 0x56248a
mov dword [ecx + 8], ebx
mov ebx, dword [ebp - 0xb0]
mov eax, dword [ebp + ebx*4 - 0x38]
mov esi, dword [eax + 0x48]
mov ax, word [ebp + edi*2 - 0x18]
mov edi, dword [ebp - 0xf8]
push edi
push dword [esi + 0x14]
mov word [esi + 0x18], ax
mov eax, dword [esi + 0x1c]
push dword [esi]
push dword [eax + 0x28]
call dword [0x6ebe24]
mov al, byte [esi + 0x18]
add esp, 0x10
and al, 0xa
mov dword [esi + 0x14], edi
cmp al, 0xa
jne 0x56255a
mov ecx, dword [esi + 0x1c]
cmp dword [ecx + 8], esi
jne 0x5624f0
mov eax, dword [esi + 0x24]
test eax, eax
je 0x5624ed
nop word [eax + eax]
test byte [eax + 0x18], 8
je 0x5624ed
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x5624e0
mov dword [ecx + 8], eax
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
test edx, edx
je 0x5624ff
mov dword [edx + 0x24], eax
jmp 0x562502
mov dword [ecx + 4], eax
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
test edx, edx
je 0x562511
mov dword [edx + 0x20], eax
jmp 0x562520
mov dword [ecx], eax
test eax, eax
jne 0x562520
cmp byte [ecx + 0x1c], al
je 0x562520
mov byte [ecx + 0x1d], 2
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [ecx]
mov dword [esi + 0x20], eax
test eax, eax
je 0x56253c
mov dword [eax + 0x24], esi
jmp 0x562549
cmp byte [ecx + 0x1c], 0
mov dword [ecx + 4], esi
je 0x562549
mov byte [ecx + 0x1d], 1
cmp dword [ecx + 8], 0
mov dword [ecx], esi
jne 0x56255a
test byte [esi + 0x18], 8
jne 0x56255a
mov dword [ecx + 8], esi
mov eax, dword [ebp + ebx*4 - 0x38]
mov esi, dword [ebp - 0xc4]
mov dword [eax + 0x54], edi
inc ebx
mov dword [ebp - 0xb0], ebx
cmp ebx, esi
jl 0x562377
test byte [ebp - 0xb4], 8
mov eax, dword [ebp + esi*4 - 0x3c]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + 0x54]
bswap eax
mov dword [ecx], eax
jne 0x5625b7
mov ecx, dword [ebp - 0xe0]
cmp ecx, esi
je 0x5625b7
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x38]
cmovge eax, edx
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + esi*4 - 0x3c]
mov ecx, dword [eax + 0x38]
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov ebx, dword [ebp - 0xcc]
cmp byte [ebx + 0x11], 0
je 0x5627b3
mov esi, dword [ebp - 0x38]
xor edi, edi
mov dword [ebp - 0xc8], 0
movzx eax, byte [esi + 1]
movzx ecx, word [esi + 0x12]
mov edx, dword [esi + 0x38]
add ecx, eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0xb4], ecx
xor ecx, ecx
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xdc], ecx
jle 0x5627b6
xor eax, eax
mov dword [ebp - 0xb0], eax
nop dword [eax]
nop dword [eax + eax]
mov ebx, dword [ebp - 0xf4]
mov ebx, dword [ebx + edi*4]
cmp edi, dword [ebp - 0xb4]
jne 0x562682
inc ecx
mov dword [ebp - 0xc0], ecx
cmp ecx, dword [ebp - 0xc4]
jge 0x562646
mov edx, dword [ebp + ecx*4 - 0x38]
jmp 0x56264a
mov edx, dword [ebp + ecx*4 - 0x24]
movzx eax, word [edx + 0x12]
xor ecx, ecx
cmp byte [ebp - 0xa5], cl
sete cl
add ecx, eax
movzx eax, byte [edx + 1]
add eax, dword [ebp - 0xb4]
mov edx, dword [edx + 0x38]
add eax, ecx
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xbc], edx
cmp edi, dword [ebp + eax - 0x60]
jne 0x5626af
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xc8], eax
shl eax, 2
cmp byte [ebp - 0xa5], 0
mov dword [ebp - 0xb0], eax
mov esi, dword [ebp + eax - 0x38]
je 0x56279a
cmp ecx, dword [ebp - 0xc4]
jge 0x5626d7
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp + ecx*4 - 0x8c]
jne 0x5626d7
cmp ebx, edx
jb 0x5626d7
mov eax, dword [ebp - 0xf8]
add eax, edx
cmp ebx, eax
jb 0x562794
cmp word [ebp - 0x100], 0
jne 0x56270c
lea eax, [ebp - 0xb8]
push eax
push dword [esi + 0x54]
mov eax, dword [ebx]
push 5
bswap eax
push eax
push dword [ebp - 0xcc]
call fcn.005795a0
mov eax, dword [ebp - 0xb8]
add esp, 0x14
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xd0]
movzx eax, word [eax + edi*2]
test ax, ax
jne 0x56272e
lea eax, [ebp - 0xdc]
push edi
push eax
call fcn.00566d90
add esp, 8
movzx eax, ax
cmp ax, word [esi + 0xc]
jbe 0x562786
cmp dword [ebp - 0xac], 0
jne 0x562b2d
lea eax, [ebp - 0x78]
push eax
mov eax, dword [esi + 0x50]
push ebx
push esi
call eax
mov ax, word [ebp - 0x66]
add esp, 0xc
test ax, ax
je 0x562794
movzx eax, ax
lea ecx, [ebp - 0xb8]
push ecx
push dword [esi + 0x54]
mov eax, dword [eax + ebx]
push 3
bswap eax
push eax
push dword [esi + 0x34]
call fcn.005795a0
mov ebx, dword [ebp - 0xb8]
add esp, 0x14
mov dword [ebp - 0xac], ebx
jmp 0x56278c
mov ebx, dword [ebp - 0xac]
test ebx, ebx
jne 0x562b2d
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc0]
inc edi
mov edx, dword [ebp - 0xbc]
cmp edi, dword [ebp - 0xdc]
jl 0x562620
mov esi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0xc4]
xor edi, edi
lea eax, [ebx - 1]
test eax, eax
jle 0x56292d
nop dword [eax]
mov eax, dword [ebp + edi*4 - 0x60]
mov edx, dword [ebp - 0xf4]
mov esi, dword [edx + eax*4]
lea edx, [edx + eax*4]
mov ecx, dword [ebp + edi*4 - 0x38]
mov ebx, dword [ebp - 0x120]
add ebx, dword [ebp - 0x11c]
mov dword [ebp - 0xf8], edx
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0x100]
movzx eax, word [edx + eax*2]
movzx edx, cx
mov ecx, dword [ebp - 0xf0]
add edx, eax
cmp byte [ecx + 5], 0
jne 0x56282a
mov ecx, dword [ecx + 0x38]
mov eax, dword [esi]
mov dword [ecx + 8], eax
jmp 0x5628d4
cmp byte [ebp - 0xa5], 0
je 0x5628b9
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xf8]
push dword [eax - 4]
mov eax, dword [ecx + 0x50]
push ecx
call eax
mov edx, dword [ebp - 0x8c]
mov esi, ebx
mov ecx, dword [ebp - 0x90]
add esp, 0xc
add ebx, 4
test edx, edx
ja 0x5628a7
jb 0x56286c
cmp ecx, 0x7f
ja 0x56287d
mov eax, 1
and cl, 0x7f
mov byte [ebx], cl
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x5628d4
test edx, edx
ja 0x5628a7
jb 0x56288b
cmp ecx, 0x3fff
ja 0x5628a7
mov eax, ecx
and cl, 0x7f
shrd eax, edx, 7
mov byte [ebx + 1], cl
or al, 0x80
mov byte [ebx], al
mov eax, 2
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x5628d4
push edx
push ecx
push ebx
call fcn.00579ab0
add esp, 0xc
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x5628d4
sub esi, 4
cmp eax, 4
jne 0x5628da
mov eax, dword [ebp - 0xec]
push esi
push eax
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
movzx edx, ax
mov ecx, dword [ebp - 0xf0]
add dword [ebp - 0x120], edx
lea eax, [ebp - 0xb8]
push eax
push dword [ecx + 0x54]
mov eax, dword [ebp - 0xfc]
push ebx
push edx
push esi
add eax, edi
push eax
push dword [ebp - 0xec]
call fcn.00570d10
mov ebx, dword [ebp - 0xb8]
add esp, 0x1c
mov dword [ebp - 0xac], ebx
test ebx, ebx
jne 0x562b2d
mov ebx, dword [ebp - 0xc4]
inc edi
lea eax, [ebx - 1]
cmp edi, eax
jl 0x5627d0
mov esi, dword [ebp - 0x38]
mov edi, 1
sub edi, ebx
mov dword [ebp - 0xc8], edi
cmp edi, ebx
jge 0x562a18
mov eax, edi
lea ebx, [ebp - 0xc]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
add ebx, ecx
cmp byte [ebx], 0
jne 0x562a00
test edi, edi
jns 0x56296e
mov eax, dword [ebp + ecx*4 - 0xa8]
cmp eax, dword [ebp + ecx*4 - 0x64]
jl 0x562a00
test ecx, ecx
jne 0x56297b
mov esi, dword [ebp - 0x60]
xor eax, eax
xor edx, edx
jmp 0x5629b2
cmp ecx, dword [ebp - 0xe0]
jge 0x562997
xor eax, eax
cmp byte [ebp - 0xa5], al
sete al
add eax, dword [ebp + ecx*4 - 0xa8]
jmp 0x56299d
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp + ecx*4 - 0x60]
xor edx, edx
cmp byte [ebp - 0xa5], dl
sete dl
add edx, dword [ebp + ecx*4 - 0x64]
sub esi, edx
lea edi, [ecx*4]
lea ecx, [ebp - 0xdc]
push ecx
push esi
push edx
push eax
push dword [ebp + edi - 0x38]
call fcn.00569c40
add esp, 0x14
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb8], eax
test eax, eax
jne 0x562b2d
mov eax, dword [ebp + edi - 0x38]
mov cx, word [ebp - 0xe8]
sub cx, word [ebp + edi - 0x4c]
mov edi, dword [ebp - 0xc8]
mov byte [ebx], 1
mov word [eax + 0x10], cx
mov ebx, dword [ebp - 0xc4]
inc edi
mov dword [ebp - 0xc8], edi
cmp edi, ebx
jl 0x562942
mov esi, dword [ebp - 0x38]
cmp dword [ebp + 0x14], 0
je 0x562a84
mov edi, dword [ebp - 0xec]
cmp word [edi + 0x12], 0
jne 0x562a84
movzx eax, byte [edi + 6]
cmp ax, word [esi + 0x10]
ja 0x562a84
push esi
call fcn.00569240
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
push eax
push edi
push dword [ebp - 0x38]
call fcn.005688f0
mov ebx, dword [ebp - 0xb8]
add esp, 0x10
mov dword [ebp - 0xac], ebx
test ebx, ebx
jne 0x562ae1
mov eax, dword [ebp - 0x38]
push dword [eax + 0x54]
push eax
push dword [eax + 0x34]
call fcn.0056e580
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0xac], ebx
jmp 0x562ae1
mov ecx, dword [ebp - 0xcc]
cmp byte [ecx + 0x11], 0
je 0x562adb
cmp word [ebp - 0x100], 0
jne 0x562adb
xor esi, esi
test ebx, ebx
jle 0x562adb
mov eax, dword [ebp + esi*4 - 0x38]
lea edx, [ebp - 0xb8]
push edx
push dword [eax + 0x54]
mov eax, dword [eax + 0x38]
push 5
mov eax, dword [eax + 8]
bswap eax
push eax
push ecx
call fcn.005795a0
mov ecx, dword [ebp - 0xcc]
inc esi
add esp, 0x14
cmp esi, ebx
jl 0x562aa0
mov ebx, dword [ebp - 0xb8]
mov dword [ebp - 0xac], ebx
jmp 0x562ae1
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xc4]
mov esi, eax
cmp eax, dword [ebp - 0xe0]
jge 0x562b2d
mov eax, dword [ebp + esi*4 - 0x24]
test ebx, ebx
jne 0x562b0a
push dword [eax + 0x54]
push eax
push dword [eax + 0x34]
call fcn.0056e580
add esp, 0xc
mov ebx, eax
inc esi
cmp esi, dword [ebp - 0xe0]
jl 0x562af1
mov dword [ebp - 0xac], ebx
jmp 0x562b2d
lea eax, [edi + 4]
push eax
lea eax, [ebp - 0x24]
push 0
push eax
call fcn.00607da0
add esp, 0xc
push dword [ebp - 0xf4]
call fcn.0059e640
xor esi, esi
add esp, 4
mov dword [ebp - 0xc8], esi
cmp dword [ebp - 0xe0], esi
jle 0x562c24
nop
mov ecx, dword [ebp + esi*4 - 0x24]
test ecx, ecx
je 0x562c11
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x18], 0x40
mov ebx, dword [ecx + 0x10]
je 0x562baa
dec dword [ebx + 0x78]
mov eax, dword [ebx + 0x88]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x98]
mov esi, dword [ebx + 0x3c]
mov dword [ebx + 0x88], ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov edi, dword [esi]
dec ecx
cdq
push edx
push eax
push 0
push ecx
call fcn.005ea7b0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [ebp - 0xc8]
add esp, 0x10
jmp 0x562bb3
push ecx
call fcn.00597f80
add esp, 4
cmp dword [ebx + 0x78], 0
jne 0x562c11
mov eax, dword [ebx + 0xcc]
cmp dword [eax + 0xc], 0
jne 0x562c11
mov al, byte [ebx + 0x10]
cmp al, 6
je 0x562c08
test al, al
je 0x562c08
cmp al, 2
jb 0x562bf5
mov eax, dword [0x6f2e40]
test eax, eax
je 0x562bdf
call eax
push ebx
call fcn.00596ad0
mov eax, dword [0x6f2e44]
add esp, 4
test eax, eax
je 0x562c08
call eax
jmp 0x562c08
cmp byte [ebx + 4], 0
jne 0x562c08
push 0
push 0
push ebx
call fcn.00576b50
add esp, 0xc
push ebx
call fcn.005775a0
add esp, 4
inc esi
mov dword [ebp - 0xc8], esi
cmp esi, dword [ebp - 0xe0]
jl 0x562b50
mov edi, dword [ebp - 0xc4]
xor esi, esi
mov dword [ebp - 0xc8], esi
test edi, edi
jle 0x562d16
nop word [eax + eax]
mov ecx, dword [ebp + esi*4 - 0x38]
test ecx, ecx
je 0x562d07
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x18], 0x40
mov ebx, dword [ecx + 0x10]
je 0x562ca0
dec dword [ebx + 0x78]
mov eax, dword [ebx + 0x88]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x98]
mov esi, dword [ebx + 0x3c]
mov dword [ebx + 0x88], ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
mov edi, dword [esi]
dec ecx
cdq
push edx
push eax
push 0
push ecx
call fcn.005ea7b0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [ebp - 0xc8]
add esp, 0x10
mov edi, dword [ebp - 0xc4]
jmp 0x562ca9
push ecx
call fcn.00597f80
add esp, 4
cmp dword [ebx + 0x78], 0
jne 0x562d07
mov eax, dword [ebx + 0xcc]
cmp dword [eax + 0xc], 0
jne 0x562d07
mov al, byte [ebx + 0x10]
cmp al, 6
je 0x562cfe
test al, al
je 0x562cfe
cmp al, 2
jb 0x562ceb
mov eax, dword [0x6f2e40]
test eax, eax
je 0x562cd5
call eax
push ebx
call fcn.00596ad0
mov eax, dword [0x6f2e44]
add esp, 4
test eax, eax
je 0x562cfe
call eax
jmp 0x562cfe
cmp byte [ebx + 4], 0
jne 0x562cfe
push 0
push 0
push ebx
call fcn.00576b50
add esp, 0xc
push ebx
call fcn.005775a0
add esp, 4
inc esi
mov dword [ebp - 0xc8], esi
cmp esi, edi
jl 0x562c40
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xac]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.005e9f40
mov esp, ebp
pop ebp
ret